` renders on the server, and the widget attaches to it in the browser.
```vue pages/quests.vue theme={"dark"}
Quests
Signed in to Claimr
```
Navigating with `` to a page without `ClaimrWidget` detaches the widget. Coming back attaches it again.
### Sign users in with your own accounts (Nuxt)
The route reads your secret API token from server-only runtime config. This example uses [`nuxt-auth-utils`](https://github.com/atinux/nuxt-auth-utils); replace `requireUserSession` with your auth library's equivalent.
```ts server/api/claimr/token.get.ts theme={"dark"}
export default defineEventHandler(async (event) => {
const { user } = await requireUserSession(event);
const config = useRuntimeConfig(event);
const response = await $fetch<{ success: boolean; data: { token: string } }>(
'https://prod.claimr.io/api/v1/token',
{
query: { account: user.id, platform: config.claimrPlatform, name: user.name },
headers: { Authorization: `Bearer ${config.claimrApiToken}` },
},
);
return { token: response.data.token };
});
```
The token never expires. Store it with your user record to avoid calling Claimr on every request.
```ts plugins/claimr-auth.client.ts theme={"dark"}
export default defineNuxtPlugin(() => {
const { loggedIn } = useUserSession(); // from nuxt-auth-utils, or your auth library
const { setUserToken } = useClaimr();
watch(
loggedIn,
async (isLoggedIn) => {
if (!isLoggedIn) return setUserToken(null);
const { token } = await $fetch('/api/claimr/token');
setUserToken(token);
},
{ immediate: true },
);
});
```
Enable the matching sign-in option in the campaign under **Settings** > **Sign-in options**.
## Wallets and Telegram
* **dApp with its own wallet**: pass `platform: 'dapp'` in the loader config and assign `window.claimr.on_wallet_request` once your wallet library is ready. The handler receives `{ op, ...params }` for `connect`, `sign_message`, `send_transaction`, and `disconnect`, and must return a result or throw. See [`on_wallet_request`](/sdk-guide#on_wallet_request) and the [React wallet bridge](/frameworks/react#connect-the-users-wallet-dapps), which translates directly to a Vue component using `@wagmi/vue`.
* **Telegram Mini App**: pass `platform: 'telegram'`. See [Telegram Mini App](/how-to/integrating-claimr-widget-into-telegram-mini-app).
## Verify the integration
1. Open the page with `ClaimrWidget`. The campaign renders inside the container.
2. In the browser console, `window.claimr.is_claimr_ready` returns `true`.
3. Navigate to another route and back. The widget comes back, and `document.querySelectorAll('#claimr-script').length` is still `1`.
4. In Nuxt, the server log and browser console show no hydration mismatch warnings for the widget container.
5. If you use user tokens, sign in to your app and confirm the widget shows the same user without a second sign-in.
# Create a Claimr account and activate it
Source: https://docs.claimr.io/getting-started/create-an-account
Sign up for Claimr, fill in your details, and activate your account so you can start exploring the admin panel.
Open your web browser and navigate to the login page: [https://panel.claimr.io](https://panel.claimr.io/)
Spot **Create account** on the login page and click it.
* **Email**: Type in your work email - this will be your key to accessing Claimr.
* **Password**: Choose a strong password: mix it up with letters, numbers, and symbols for maximum security.
* **Confirm password**: Double-check your password by typing it in again.
* **Your name**: Enter your full name. You can always change it later in your account settings.
Keep your login information confidential. Make sure it's stored somewhere safe and secure.
Once everything looks good, click **Register Account**. Congratulations, you are in!
* **Check your inbox**: Check your email inbox (and your spam folder, just in case) and look for a message from Claimr.
* **Follow the link**: Click the link in the email to activate your account and you'll be redirected to the Claimr panel.
Need a hand? Let us know at [support@claimr.io](mailto:support@claimr.io) - we're always happy to help!
# Edit your Claimr profile
Source: https://docs.claimr.io/getting-started/edit-profile
Update your account details from your Claimr profile settings.
You can update your account details, including your name, at any time from your profile settings in the Claimr admin panel.
This article is a work in progress. Check back soon for a full walkthrough of the profile editing options.
# Getting started
Source: https://docs.claimr.io/getting-started/overview
Find your way into creating an account, signing in, resetting your password, and editing your profile.
Welcome to Claimr! Claimr helps you turn your product into a gamified experience - campaigns, quests, and tasks that reward your users for taking action. Before you build your first campaign, set up your account with the steps below.
Sign up for Claimr and activate your account.
Access your personalized Claimr dashboard.
Regain access to your account if you forget your password.
Update your account details and preferences.
## What's next
Once you're signed in, see how [Claimr's core components](/claimr-core-components) fit together, then head to [Campaigns](/campaigns/overview) to build your first campaign.
Need a hand? Let us know at [support@claimr.io](mailto:support@claimr.io) - we're always happy to help!
# Reset your Claimr account password
Source: https://docs.claimr.io/getting-started/reset-password
Forgot your password? No worries! Follow these steps to regain access to your Claimr account.
On the Claimr login page, locate and click **Forgot your password?** below the password field. This will take you to the password reset page.
In the provided field, type the email address linked to your Claimr profile. Double-check for accuracy to ensure you receive the password reset email.
Open your email inbox and look for a message from Claimr. It should contain a unique verification code needed to reset your password.
Go back to the password reset page and enter the verification code from your email. Hit **Submit** to confirm your code and move on to the next step.
Enter your desired new password in the designated field. Choose a strong password with a mix of letters, numbers, and symbols. Retype your new password to ensure it matches exactly.
Click **Reset password** to save your new password.
You're all set! You can now sign in to Claimr with your new password.
# Sign in to your Claimr account
Source: https://docs.claimr.io/getting-started/sign-in-to-your-account
Access your personalized Claimr dashboard with your email and password, or sign in with your Google account.
Open your web browser and navigate to the login page: [https://panel.claimr.io](https://panel.claimr.io/)
* **Email**: Type in the email address you used to create your Claimr account.
* **Password**: Carefully enter your password.
Once you've entered your details, click **Sign In** to access your personalized Claimr dashboard.
**Prefer Google?**
You can also log in with your Google account by clicking the **Continue with Google account** link.
## Need a hand?
* **Forgot your password?** Click the **Forgot your password?** link below the login button. We'll guide you through the steps to reset it.
* **New to Claimr?** If you haven't yet created a Claimr account, click **Create account** to join us!
Your login information is confidential. Please ensure you're accessing your account from a secure device and network.
Need a hand? Let us know at [support@claimr.io](mailto:support@claimr.io) - we're always happy to help!
# Create new group
Source: https://docs.claimr.io/groups/create-new-group
Build a new quest group in your campaign to organize related quests, then explore the group dashboard to add quests and manage tasks.
## Create quest group
From your Claimr dashboard, navigate to **Campaigns** and select the campaign you want to add the group to.
Click the **Quests** tab in the top navigation bar. From the dropdown menu that appears, select **Groups**. This will take you to the Groups management page.
On the Groups page, click the **Create group** button in the top right. This will open a modal window.
In the modal window, enter a descriptive name for your new group in the field. The name should indicate the theme or purpose of the quests within the group.
The new, empty group will now be created and will appear in the list of groups.
## Group dashboard
Once your group is created and saved, you'll be taken to the dashboard.
![Groups dashboard showing a newly created, empty group]()
The dashboard allows you to:
* **View group details**: The group's name, and any configured settings.
* **Add quests**: Click **+ Create quest** to add a new quest directly to this group.
* **Manage existing quests**: If you have existing quests, they will be displayed.
* **Manage existing tasks**: If you have existing tasks, they can be opened by clicking the corresponding button.
* **Edit group settings**: Click on the edit button (pencil) to change the group's settings.
In the next stage, dive into configuring the specific settings for your groups.
# Group settings
Source: https://docs.claimr.io/groups/group-settings
Configure general settings, time limits, tags, and advanced options for a quest group, and manage tasks across the group.
## Group dashboard
Once your group is created and saved, it appears on the dashboard.
![Groups dashboard]()
This dashboard allows you to:
* **View group details**: The group's name, and any configured settings.
* **Add quests**: Click **+ Create quest** to add a new quest directly to this group.
* **Manage existing quests**: If you have existing quests, they will be displayed.
* **Edit group settings**: Click the edit button (pencil) to change the group's settings.
* **Manage existing tasks**: If you have existing tasks, they can be opened by clicking the corresponding button.
**To edit your group's quest**: Pick the group you want to work on and click the **Edit** button in the upper corner. This will unlock all the settings and allow you to customize them.
## General
This section allows you to configure the basic parameters for your group.
![Group general settings]()
* **ID**: A unique identifier for the group, automatically generated by Claimr. You can copy it using the icon on the right.
* **Name**: The name of your group, displayed to users. Choose a name that is clear, concise, and descriptive of the quests within the group.
* **Quests Mode**: Determines how quests within the group are presented and completed. Click the dropdown menu and select one of the following options:
* **Default**: All quests in the group that are not marked as "Hidden" are immediately visible and available to users. There are no restrictions on the order of completion.
* **Immediate**: Quests within the group become available sequentially. Once a user completes a quest, the next quest in the group is immediately unlocked.
* **Daily**: A new quest within the group becomes available at the start of each day (based on your configured time zone). This creates a time-gated progression through the group's content.
* **Description**: A brief explanation of the group's purpose, theme, or the type of quests it contains. This helps users understand what to expect within the group.
**How to edit**: Click **Create description** (if no description exists) or **Edit** (if one already exists) below the Description field. This opens a text editor where you can write and format your description. Click **Save** to keep your new or updated description. For more details on descriptions and tags, visit [Descriptions: creation, usage, tags](/descriptions-creation-usage-tags).
* **Animation type**: Select **typing** from the available animation types. When selected, the description displays with a typing animation in the widget.
* **Collapse description toggle**: Control how the description is displayed.
* **On**: The description is collapsed, showing only a short preview. Users need to click to expand it.
* **Off**: The full description is displayed by default.
* **Unwrap toggle**: Control how tasks are displayed to users on your campaign page.
* **On**: Tasks are immediately visible to users.
* **Off**: Tasks are presented within their respective quests, and users need to click on those quests to view the tasks inside.
## Settings
![Group time limit settings]()
In addition to the General settings, you can configure the following options for your groups:
* **Min points**: Define the minimum number of points a user must have before they can access the quests within this group.
* **Time limited toggle**: Switch on this toggle to activate the time limit feature.
* **Start date**: Set the date the grouped quests should start. Use the time picker to set the exact hour and minute for the launch.
* **End date**: Set the date your grouped quests should finish. Use the time picker to set the precise hour and minute for the end.
**Time zone**: All times are based on your current time zone. Double-check that your settings are accurate to avoid any scheduling surprises. **24-hour format**: The time picker uses a 24-hour format (e.g., 13:30 for 1:30 PM).
## Tags settings
![Group tags settings]()
* **What it is**: Tags are labels you can assign to this specific group of quests. They enable you to dynamically control the visibility of this entire group (and all quests within it) for different users or user segments when used with specific `data-` attributes in your widget integration script.
* **How to use**: Enter a tag name in the field (e.g., `new_users`, `beta_testers`, `europe_only`). To add multiple tags, separate them with a comma. To remove a tag, click the **x** next to its name.
* **Purpose**: Assigning tags to your groups (and quests) in the Claimr admin panel, when used with the `data-show-tags` and `data-hide-tags` widget attributes, allows you to:
* **Control visibility**: Show or hide this entire group for different users or segments.
* **Organize and segment**: Use tags for internal categorization or to target content delivery (e.g., show this group only to users who match the `new_users` tag passed in the script).
* **A/B test content**: Direct different user segments to alternatively tagged groups of quests.
* **Manage access**: Restrict or grant access to this group based on user tags.
To find out more about tags and attributes, read [Widget attributes](/widget/widget-attributes) and [Customize user experience with tags and attributes](/how-to/customize-user-experience-with-tags-and-attributes).
## Advanced settings
This section provides additional options for customizing your quest group.
![Group advanced settings]()
Add internal notes, tracking information, or any other relevant details about the group that are *not* visible to users. This is for your own organizational purposes.
Use the toggle to control this section's visibility.
## Action buttons
* **Update** saves any changes you've made to the group settings.
* **Cancel** discards any unsaved changes.
* **Delete Group** permanently deletes the group. Use this with caution!
## Manage tasks within groups
The **Manage tasks** button provides a centralized way to view, edit, and delete tasks within your current campaign, regardless of which group they belong to.
![Manage tasks table]()
1. **Access the task list**: From the Groups dashboard, click **Manage tasks** in the top right corner. This opens a table displaying all tasks in the campaign.
2. **View task information**: The table shows the following information for each task:
* **Task name**
* **Used in quest** (the name of the quest the task is used in)
* **Type** of the task (Connect a Wallet, Submit UGC, Poll, etc.)
* **Points** users can get
* **Delete button**
* **Edit button**: Click it next to the task you want to modify. This opens a modal window containing all the settings for that task. You can edit any of the task's settings.
# Groups
Source: https://docs.claimr.io/groups/overview
Use groups to organize Claimr campaigns, improving user experience, navigation, and overall campaign management.
In Claimr, a group is a collection of related quests, organized together to provide structure and context within a campaign. Groups serve as a way to divide a larger campaign into manageable sections, guiding users through a defined set of activities. This improves campaign organization and provides users with a clear sense of progression.
## Benefits of using groups
**Improved organization**: Groups help you structure your campaign logically, making it easier for users to navigate and understand.
**Clearer progression**: Users can see their progress within each group, providing a sense of accomplishment.
**Contextualized quests**: Groups allow you to connect quests with a common theme, objective, or narrative.
**Sequential completion**: Groups can be configured to enforce sequential completion, requiring users to complete quests in a specific order.
**Time-based availability**: Groups, or individual quests within groups, can have time-based availability windows.
Build a new group to organize your campaign's quests.
Configure quest mode, time limits, tags, and more.
# Add custom points to users
Source: https://docs.claimr.io/how-to/add-custom-points-to-users
Use Claimr's API endpoints to reward users for actions they complete outside the platform, syncing off-platform activity with your Claimr reward system.
Add points to your users' balances in Claimr. Use these methods to reward your users in Claimr based on actions they complete outside the platform - for example, in your own app or product. This effectively syncs off-platform activity with your Claimr reward system.
### Benefits of adding points from external actions
* **Expand engagement:** Extend user engagement beyond the Claimr platform by rewarding activity in your own application or product.
* **Reward specific behaviors:** Recognize and incentivize particular actions or achievements that occur outside of Claimr.
* **Create a holistic reward system:** Build a unified reward experience that combines both in-Claimr and external user activities.
You can add points to user balances in Claimr through three primary mechanisms, each leveraging specific API endpoints. The method you choose depends on how you want to track and reward the external user activity.
## 1. Direct point management (using the API)
These API calls allow you to directly **add points** (`POST /user/reward`) or **deduct points** (`POST /user/withdraw`) from a user's balance in Claimr. You can initiate these requests from your external system to Claimr, specifying the user, campaign, and the amount of points to add or remove.
### POST /user/reward
Use this endpoint to reward your users in Claimr based on actions they complete outside the platform - for example, in your own app or product. This allows you to sync off-platform activity with your Claimr reward system.
This action occurs in the background. The user receives points through this API request, and these points automatically appear in Claimr.
**Body (JSON request example):**
```json theme={"dark"}
{
"account": "string",
"platform": "string",
"pid": "string",
"id": "string",
"kind": "string",
"xp": 0,
"env": "string"
}
```
* `account`: The user's account identifier in your platform (e.g., email, nickname, ID).
* `platform`: Platform identifier.
* `pid`: Campaign ID.
* `id`: A unique identifier for each reward given to a specific user. If this ID is not unique for a given user, the reward will be ignored.
* `xp`: The number of points you are assigning to the user (e.g., 100 points).
**JSON response (success):**
```json theme={"dark"}
{
"success": true
}
```
### POST /user/withdraw
This endpoint allows you to deduct or withdraw points from your users' balances in Claimr. This is useful for adjusting user points based on actions outside of Claimr or for managing specific campaign mechanics.
This action occurs in the background. The specified points are deducted from the user's balance in Claimr.
**Body (JSON request example):**
```json theme={"dark"}
{
"account": "user123",
"platform": "steam",
"pid": "campaign_abc123",
"id": "withdraw_xyz789",
"kind": "items_shop",
"xp": 100,
"env": "string",
"strict": true
}
```
* `account`: The user's account identifier in your platform (e.g., email, nickname, ID).
* `platform`: Platform identifier.
* `pid`: Campaign ID.
* `id`: A unique identifier for each withdrawal transaction given to a specific user. This ID ensures that the withdrawal is processed only once.
* `xp`: The number of points you wish to withdraw from the user's balance (e.g., 50 points).
* `strict`: Optional strict-mode flag for the withdrawal.
**JSON response (success):**
```json theme={"dark"}
{
"success": true
}
```
### Monitoring points in Analytics
To view a user's detailed information:
1. Navigate to the **Analytics** section.
2. Select the relevant table (e.g., Activity, Referrals).
3. Find the user in the table.
4. Click on the user's row. This will open a modal window with a comprehensive overview.
5. Go to the points section within this modal. It shows how many points were earned from various sources and allows you to manually adjust the user's total points if needed.
Withdrawn points are any reductions to a user's total points, such as penalties or corrections applied via the Claimr API.
All information about the points for each user can be checked in [User information](/data-analytics/user-information).
## 2. API tasks: stream and action value
`POST /stream/value` and `POST /action/value` are used when you want to reward users based on continuous value streams or specific actions that carry a quantifiable value. You can configure these tasks by navigating to **Task → API** in the Claimr admin panel and choosing one of the following task types.
![API task type selection]()
### POST /action/value
`POST /action/value` supports two types of API tasks:
* **API Number value tasks:** Used when you need to track an expected numerical result. For example, a user earns a reward once a specific target (like receiving 10 likes) is reached.
* **API Score tasks:** Used for directly adding a score or a specific amount of points to a user's total, immediately changing their balance.
**Body (JSON request example):**
```json theme={"dark"}
{
"account": "user123",
"platform": "steam",
"pid": "campaign_abc123",
"cid": "quest_xyz789",
"aid": "score_update",
"value": 150,
"env": "string"
}
```
* `account`: User identifier.
* `platform`: Platform identifier.
* `pid`: Campaign ID.
* `cid`: Quest ID.
* `aid`: Action ID.
* `value`: The numeric value to set or update.
**JSON response (success):**
```json theme={"dark"}
{
"success": true
}
```
### POST /stream/value
`POST /stream/value` specifically supports the task type **API Stream Value**. It accumulates numeric attributes associated with user actions (e.g., total transactions).
![API Stream Value task settings]()
**Body (JSON request example):**
```json theme={"dark"}
{
"account": "user123",
"platform": "steam",
"pid": "campaign_abc123",
"stream": "player_score",
"value": 250,
"env": "string"
}
```
* `account`: User identifier.
* `platform`: Platform identifier.
* `stream`: Attribute stream ID.
* `pid`: Campaign ID.
* `value`: The numeric value to accumulate.
**JSON response (success):**
```json theme={"dark"}
{
"success": true
}
```
## 3. Events task
If your product or app generates user actions that you'd like to track and reward (for example, gameplay sessions or completed actions), you can use event-based tasks in Claimr. These are flexible and work by sending structured event data to Claimr, which then checks whether it matches your task criteria.
This guide uses two types of tasks with real data from Wowhaus as an example:
* Custom Events Count (e.g., number of dice rolls)
* Custom Events Value (e.g., total amount bet)
### How POST /event works
This endpoint allows your application to send event data to Claimr. If the event matches an existing task (by platform, category, name, and optionally a query), the user is rewarded accordingly.
**Body (JSON request example):**
This payload represents a user who started a game session and placed a bet of 250. Depending on the task setup, this same event can be used to track either the number of sessions (Event Count) or the value of bets (Event Value).
```
POST https://prod.claimr.io/api/v1/event
Headers:
Authorization: Bearer YOUR_PERSONAL_API_TOKEN
Content-Type: application/json
Accept: application/json
Body:
{
"account": "user123",
"platform": "wowhaus",
"pid": "H_wie9sz",
"category": "dices",
"name": "GameSession",
"data": {
"bet": 250
}
}
```
Replace `YOUR_PERSONAL_API_TOKEN` with a valid token generated from your Claimr account.
* `account`: A unique identifier for the user (e.g., their email, nickname, or internal user ID within your platform).
* `platform`: An identifier indicating the platform where the user's action or account originates.
* `pid`: The Campaign ID to which this event belongs.
* `category`: A broad classification for the event (e.g., "game", "transaction"). This helps in filtering events later.
* `name`: The specific name of the action or event (e.g., "level\_up", "purchase\_complete").
* `data`: A nested object that holds the detailed attributes of the event: scores, levels, durations, amounts, or any other numeric or descriptive values relevant to the action being tracked.
* `ts`: The timestamp of the event from your client's system.
**JSON response (success):**
```json theme={"dark"}
{
"success": true
}
```
### How account and platform are linked
The `account` and `platform` fields define how users are identified in Claimr:
* If you're using a **user token**, these values usually come from your authentication method.
* If users log in via **wallet address**, then the platform is `web3`.
* If you're using **Telegram mini-apps**, the account could be the Telegram User ID and the platform set to `telegram`.
This flexibility allows you to send events from different apps or sources while still attributing them to the correct user in Claimr.
### Connecting Events to tasks
The examples below show how to configure Events tasks in Claimr based on real gameplay data from the Wowhaus platform.
![Events task type selection]()
The two main types covered below are:
* **Custom Events Count** - tracks how many times an event occurred.
* **Custom Events Value** - tracks the total numeric value received from an event.
When you create a task in Claimr with the type **Events**, Claimr listens for `POST /event` calls matching the criteria you define.
### Custom Events Count
Use this setup when you want to reward users for repeating an action a specific number of times. Example: users are rolling the dice in a game.
![Custom Events Count task settings]()
* **Completion points:** 100 - the number of points the user receives after completing the task conditions.
* **Points multiplier (%):** 5% - a 5% multiplier means the user receives 105 points (the base amount of 100 points + 5%).
* **Recurrence:** Daily - the task can be completed once a day. After 24 hours, it resets for the user.
* **Event Category:** `dices` - a label used to group similar events. In this case, it's related to dice gameplay.
* **Event Name:** `GameSession` - the exact name of the event to track. It must match the `name` field in the `POST /event` body.
* **Platform:** `wowhaus` - identifies the integration source. In this case, Wowhaus is the platform where the events come from.
* **Events Count:** 5 - the user must perform the action 5 times to earn the reward.
* **Button Text:** "Claim your reward" - the custom label for the CTA button displayed on the quest.
* **Is progressive reward:** Enabled - rewards scale based on how much the user exceeds the required count. If the user rolls 30 times (instead of 10), they earn 3× the base reward.
* **Is continuous:** Enabled - the task stays active and resets based on the recurrence logic. Users can keep earning rewards every day if they meet the conditions again.
This setup tracks how many times a user sends the `GameSession` event under the `dices` category. Once the event count reaches 5, the user is awarded 105 points. Because progressive rewards are enabled, additional actions (e.g., 30 rolls) result in proportionally higher rewards. The enabled "continuous" toggle means this task stays active and can be completed again each day.
### Custom Events Value
Use this task type when you want to reward a user once the total value sent through event data reaches a specific threshold. Example: users set bets in a dice game.
![Custom Events Value task settings]()
* **Completion points:** 100 - the number of points the user receives after completing the task conditions.
* **Points multiplier (%):** 5% - a 5% multiplier means the user receives 105 points (the base amount of 100 points + 5%).
* **Recurrence:** Once - the task can be completed only once. It doesn't reset.
* **Event Category:** `dices` - a label used to group similar events. In this case, it's related to dice gameplay.
* **Event Name:** `GameSession` - the exact name of the event to track. It must match the `name` field in the `POST /event` body.
* **Platform:** `wowhaus` - identifies the integration source. In this case, Wowhaus is the platform where the events come from.
* **Query:** `[].data.bet` - this JMESPath query extracts the bet value from each received event.
* **Events Value:** 500 - the task is triggered when the total of all `data.bet` values reaches 500.
* **Button Text:** "Claim your reward" - the custom label for the CTA button displayed on the quest.
* **Is progressive reward:** Disabled - even if the user exceeds the 500 bet value, they still receive the same fixed reward (105 points with multiplier).
* **Is continuous:** Disabled - once completed, the task is marked as done. Users won't earn additional rewards if the task resets the following day.
**Query example for Events Value**
To extract the `bet` value from incoming event data, use this JMESPath query:
```
[].data.bet
```
This will return the list of bet amounts across all received events.
This task listens for `GameSession` events in the `dices` category. It uses the `[].data.bet` JMESPath query to extract numeric bet values from each event. Once the combined total reaches 500, Claimr grants 100 base points, boosted to 105 points by the 5% multiplier. Because both toggles are off, the user earns the reward only once and receives a fixed amount, regardless of how much they exceed the threshold.
For more on configuring task rewards, recurrence, and multipliers in general, see [Task settings](/tasks/task-settings).
# Create Discord campaign
Source: https://docs.claimr.io/how-to/create-discord-campaign
Follow this tutorial to create your Discord campaign in Claimr, covering all steps from initial setup through configuring Discord-specific tasks.
Campaigns are the foundation of your user engagement strategy in Claimr. Think of a campaign as the main container for your interactive experience, holding all the quests, tasks, and rewards you design to guide users and achieve your goals. Using Claimr campaigns focused on Discord can help you:
* Increase your Discord server members.
* Encourage participation in Discord discussions or activities.
* Promote your Discord community.
* Reward users for joining and interacting with your server.
* Track the effectiveness of your Discord marketing efforts.
When creating a new campaign, Claimr offers pre-built **Basic** templates for a quick start. Alternatively, you can choose to start with an **Empty** campaign to build everything manually.
This tutorial guides you through the **manual process** of creating a campaign specifically designed for Discord engagement, including configuring the available Discord tasks.
## Create your campaign
From your Claimr dashboard, click **Campaigns** in the navigation menu, then click **Create new campaign**.
* **Name**: Enter a name for your campaign.
* **Campaign points name**: Enter the name for the points users will earn (e.g., Points, XP, Tokens).
* **Sign-in options**: Select **Discord**. This requires users to connect their Discord account to join and participate.
Click **Continue**.
Select **Empty** to build your campaign manually and click **Create campaign**.
## Create your quest
Once your campaign is created, you'll be automatically taken to the **Groups of quests** section.
![Groups of quests section]()
Quests are often organized into **Groups** for structure. You'll see a **Default group** already created.
Change the name of the **Default Group** by clicking the edit icon (pencil) on the right. In the **General** settings that open, type the new name in the **Name** field, then click **Update** to save.
Within the **Group** area, click **+ Create quest**. Enter a descriptive name for your first quest and click **Create**.
Click directly on the quest card to open its dedicated settings page.
From this page, you can begin adding tasks to the quest, and edit the quest's **General Settings**, including changing the **Quest Name**, adding a **Description**, or uploading an **Image**.
For a detailed explanation of all available quest settings, see [Quest settings](/quests/quest-settings).
## Create your tasks
Now that your first quest is created, add the specific **Tasks** users need to complete. On the **Quest Settings** page, click the **+ Create new task** button.
Enter a name for this task. This name is essential for identifying the task internally and is **not** shown to participants.
You can further customize the task using these optional fields:
* **Task header**: The title/instruction participants will see.
* **Task completion message**: Message shown on success.
* **Task failure message**: Message shown on failure.
* **Description**: Click **+ Create description** to add detailed instructions using a text editor. After creating, a **Collapse description** toggle appears to control if the description is initially hidden.
For a detailed explanation, see [Task settings](/tasks/task-settings).
Select **Discord** from the platform options. You'll see two Discord-specific task types: **Join a Discord server** and **Verify Discord roles**. Select **Join a Discord server** to reward users for joining your server.
Before configuring a Discord task, add the Claimr bot to your Discord server and grant it administrator permissions. This allows Claimr to verify task completion. To add the bot, click the link provided within the Discord task settings interface in Claimr.
Scroll down to see the specific task settings for this task type:
* **Invite link**: Add the invite link to your Discord server.
* **Is intent? (optional)**: Enable this toggle if you want users to manually confirm their intent to join before Claimr verifies their membership. If disabled, Claimr attempts verification directly after the user clicks to join.
To add multiple tasks to your campaign, click **+ Create new task** for each one and repeat the configuration process.
Scroll down to the **Task rewards** section to find the **Completion points** field. Enter the base number of points a user earns for successfully completing this specific task.
Below **Completion Points**, you'll find additional settings for **Referral completion Points**, **Points multiplier**, non-point **Rewards**, task **Dependencies**, and **Advanced settings**.
For a detailed explanation, see [Task settings](/tasks/task-settings).
## Save and preview the task
Once you have configured all the task settings, click **Create** to save your configuration.
To see how this task will appear to users, click the **Preview** button (a play icon) located in the top-right, or navigate back to the main **Quest settings** page and click **Preview** under the quest details.
![Task preview button]()
The preview opens in a new tab, showing desktop, tablet, and mobile views.
## Add another task
The other task type available specifically for Discord is **Verify Discord Roles**. Use this task to reward users for having one or more specific roles in your Discord server.
To add this task:
1. Click **+ Create new task** again within your quest.
2. Configure the **General** settings (Task name, header, messages, description) just as you did for the previous task.
3. In the **Task type** section, select **Discord**, and this time choose **Verify Discord roles**.
![Verify Discord roles task type]()
Configure the specific settings for **Verify Discord roles**:
![Verify Discord roles task settings]()
* **Server address**: Enter the full URL of your Discord server.
* **Fetch roles**: Click this button first to retrieve the list of available roles from your connected Discord server.
* **Roles**: Select the specific role(s) users need to have to complete this task.
* **Any role from list? (optional)**: Enable this toggle if having any one of the selected roles is enough to complete the task. Leave it disabled if the user must have all the selected roles.
After configuring these specific settings, move on to the **Task Rewards** section and adjust any **Dependencies** just as you did for the previous task. Once finished, click **Create** to save this task.
## Preview your campaign
Once you've configured all the campaign settings, see how it will appear to users. Click the **Preview** button (a play icon), located in the top-right of the task settings window. The preview opens in a new tab, showing desktop, tablet, and mobile views.
![Campaign preview]()
In preview mode, try clicking the buttons and completing the actions to see exactly how participants will interact with the task.
![Interacting with the campaign preview]()
Looking to build campaigns for other platforms like X or Telegram? Check out our dedicated tutorials for step-by-step guides on those specific setups.
# Create X campaign
Source: https://docs.claimr.io/how-to/create-x-campaign
Follow this tutorial to create your X (Twitter) campaign in Claimr, from initial setup through configuring the most popular X tasks.
Campaigns are the foundation of your user engagement strategy in Claimr. They act as the main container for your interactive experience, holding the quests, tasks, and rewards designed to guide users and achieve your goals. Creating a campaign focused specifically on X (formerly Twitter) can significantly boost your social media presence and engagement. Use X campaigns to:
* Increase your X followers.
* Promote your posts and drive engagement (likes, reposts, comments).
* Increase brand awareness and social media presence.
* Encourage users to participate in discussions or challenges on X.
When starting, you can use Claimr's pre-built templates (like **X Basic**) for a quick setup with common X tasks, or select **Empty** to build your campaign manually, giving you complete control over the structure and content.
This tutorial focuses on the **manual creation** process, guiding you step-by-step through setting up an X campaign and configuring the most popular X tasks.
## Create your campaign
From your Claimr dashboard, click **Campaigns** in the navigation menu, then click **Create new campaign**.
* **Name**: Enter a name for your campaign.
* **Campaign points name**: Enter the name for the points users will earn (e.g., Points, XP, Tokens).
* **Sign-in options**: Select **X Twitter**. This requires users to connect their X account to join and participate.
Click **Continue**.
You'll now see options to start with a pre-built template or from scratch. Select **Empty** to build your campaign manually and click **Create campaign**.
## Create your quest
Once your campaign is created, you'll be automatically taken to the **Groups of quests** section. This is where you'll add and organize your quests.
![Groups of quests section]()
Quests are often organized into **Groups** for structure. You'll see a **Default group** already created.
Change the name of the **Default Group** by clicking the edit icon (pencil) on the right. In the **General** settings that open, type the new name in the **Name** field, then click **Update** to save. You'll be returned to the **Groups** dashboard.
Within the **Group** area, click **+ Create quest**. Enter a descriptive name for your first quest and click **Create**.
Your newly created quest will now appear as a card within the group on the **Quests** page.
Click directly on the quest card to open its dedicated settings page.
From this page, you can begin adding tasks to the quest, and edit the quest's **General Settings**, including changing the **Quest Name**, adding a **Description**, or uploading an **Image**.
For a detailed explanation of all available quest settings, see [Quest settings](/quests/quest-settings).
## Create your tasks
Now that your first quest is created, the next step is to add the specific **Tasks** users need to complete. On the **Quest Settings** page, click the **+ Create new task** button. This will open the task configuration window.
The task configuration window starts with the **General settings**. Enter a name for this task. This name is essential for identifying the task internally and is **not** shown to participants.
You can further customize the task using these optional fields:
* **Task header**: The title/instruction participants will see.
* **Task completion message**: Message shown on success.
* **Task failure message**: Message shown on failure.
* **Description**: Click **+ Create description** to add detailed instructions using a text editor. After creating, a **Collapse description** toggle appears to control if the description is initially hidden.
For a detailed explanation of all task settings, see [Task settings](/tasks/task-settings).
Select **X (Twitter)** from the platform options, then select the specific task type **Follow on X**. This task rewards users for following a specified X account and is a **Verified** task.
Scroll down till you see the specific task settings for this task type, then enter the username of the X account you want users to follow, without the "@" symbol.
To add multiple tasks to your campaign, click **+ Create new task** for each one and repeat the configuration process.
Scroll down to the **Task rewards** section to find the **Completion points** field. Enter the base number of points a user earns for successfully completing this specific task.
Below **Completion Points**, you'll find additional settings for **Referral completion Points**, **Points multiplier**, non-point **Rewards**, task **Dependencies**, and **Advanced settings**. These allow for more complex reward structures and task flows.
For a detailed explanation, see [Task settings](/tasks/task-settings).
## Save and preview the task
Once you have configured all the task settings, click **Create** to save your configuration. Your task is now configured within the quest.
To see how this task will appear to users, click the **Preview** button (a play icon) located in the top-right, or navigate back to the main **Quest settings** page and click **Preview** under the quest details.
![Task preview button]()
The preview opens in a new tab showing desktop, tablet, and mobile views.
## Add more tasks
To add more actions for users to complete, repeat the task creation process starting from the **Create new task** page. Here are the settings for the most popular X tasks.
### Repost
![Repost task type]()
Use this task to reward users for reposting a specific post on X. Enter the full URL of the X post you want users to repost in the **Post Link** field. Optionally, enable the **Hide preview?** toggle to hide the post preview within the task.
![Repost task Post Link field]()
### Post
![Post task type]()
Use this task to reward users for creating a post on X with specific content. Enter the message you want users to include in their X post in the **Message** field. Optionally, enter a URL you want users to include in their post in the **Tweet Message Link** field.
![Post task Message field]()
### Comment
![Comment task type]()
Use this task to reward users for commenting on a specific post on X. Enter the full URL of the X post you want users to comment on in the **Post Link** field. Optionally, enable the **Hide preview?** toggle to hide the post preview within the task and enter any required hashtags in the **Hashtags** field.
![Comment task settings]()
### Quote
![Quote task type]()
Use this task to reward users for quoting a specific post on X. Enter the full URL of the X post you want users to quote in the **Post Link** field. Optionally, enable the **Hide preview?** toggle to hide the post preview within the task.
![Quote task settings]()
### Followers count
![Followers count task type]()
Use this task to reward users for having a certain number of followers on their X account. Enter the minimum required number of followers a user must have in the **Minimum Followers** field.
![Followers count task settings]()
## Preview your campaign
Once you've configured all the campaign settings, see how it will appear to users. Click the **Preview** button (a play icon), located in the top-right of the task settings window. The preview opens in a new tab, showing desktop, tablet, and mobile views.
![Campaign preview]()
In preview mode, try clicking the buttons and completing the actions to see exactly how participants will interact with the task.
![Interacting with the campaign preview]()
Looking to build campaigns for other platforms like Discord or Telegram? Check out our dedicated tutorials for step-by-step guides on those specific setups.
# Customize user experience with tags and attributes
Source: https://docs.claimr.io/how-to/customize-user-experience-with-tags-and-attributes
Use tags in Claimr campaign settings together with widget data-attributes to dynamically show or hide Quests and Groups for different user segments.
In Claimr, **Tags** are labels you assign to content elements like **Quests** or **Groups** within your campaign settings. When combined with specific `data-` attributes in your widget integration script, these tags allow you to dynamically control what content is shown or hidden for individual users or user segments. This powerful feature enables you to tailor the campaign experience, making it more relevant and effective for different audiences.
### Benefits of using tags for customization
* Showing specific **Quests** or **Groups** only to certain users.
* Hiding content based on user characteristics (e.g., location, past behavior).
* Creating personalized user journeys within the same campaign.
## How tag-based customization works
The system relies on a two-part setup: tagging your content in the Claimr admin panel and then passing user-specific tags via the widget script.
1. **Tagging content in Claimr**: First, you assign one or more tags to specific **Quests** or **Groups** in their respective settings within the Claimr admin panel. For instructions on adding tags, see the **Tags setting** section in [Quest settings](/quests/quest-settings) or [Group settings](/groups/group-settings).
2. **Passing tags via widget attributes**: Next, for each user session, you include specific `data-` attributes in your widget integration script that tell Claimr which tags are active for that user. These are **`data-show-tags`** and **`data-hide-tags`**.
3. **Display logic**: The Claimr widget then uses this information to decide what to show or hide:
* If a user is passed a tag via **`data-show-tags`**, any entity (currently Quests and Groups) with a matching tag will be displayed to them, even if it might otherwise be hidden by default or other rules.
* If a user is passed a tag via **`data-hide-tags`**, any entity (Quests and Groups) with a matching tag will be hidden from them.
**Example scenario:** An X-related group of quests is tagged `x_users` in the admin panel and is hidden by default. For users who have connected their X account, you pass `data-show-tags="x_users"` in the script. This group will then appear for those users.
## Configuration in Claimr admin panel
1. **Tagging quests and groups**: Navigate to the settings page of the **Quest** or **Group** you want to tag, locate the **Tags** input field, and enter your desired tag(s), separating multiple tags with a comma. Example: `beta_feature`, `new_user_flow`, `region_EU`. Save the Quest or Group settings.
2. **Defining default visibility**: The "default visibility" of a **Quest** or **Group** is generally determined by whether it's set to "Hidden" in its own settings or by other campaign-level rules. The `data-show-tags` attribute is used to *override* a hidden state for users with matching tags. The `data-hide-tags` attribute is used to *override* a visible state for users with matching tags.
There isn't a separate "default visibility for tags" setting *per se*; tags are used to *modify* the existing visibility based on the user's context provided by the script attributes.
## Script integration configuration
As detailed in our [Widget attributes](/widget/widget-attributes) article, there are 2 key attributes for tag-based customization:
### data-hide-tags
Pass a comma-separated list of tags. Any **Quest** or **Group** in your campaign that has one or more of these tags assigned to it will be hidden from the user for this session.
**Format:** Comma-separated string of tags.
**Example:**
```html theme={"dark"}
```
### data-show-tags
Pass a comma-separated list of tags. Any **Quest** or **Group** that has one or more of these tags assigned to it will be shown to the user, even if it might be hidden by default or due to other rules.
**Format:** Comma-separated string of tags.
**Example:**
```html theme={"dark"}
```
You can use both `data-hide-tags` and `data-show-tags` simultaneously if needed, but ensure your logic is clear to avoid conflicting rules.
## Practical use cases
* **Geo-targeting content**: Tag content with region-specific tags (e.g., `europe_only`, `usa_promo`). In your website/app logic, detect the user's region and pass the appropriate tag via `data-show-tags` (e.g., `data-show-tags="europe_only"`) or hide content for other regions using `data-hide-tags`.
* **A/B testing different content blocks**: Create two versions of a Quest Group (e.g., Group A tagged `test_version_A`, Group B tagged `test_version_B`). Serve the widget script with `data-show-tags="test_version_A"` to 50% of users and `data-show-tags="test_version_B"` to the other 50% to test different content flows.
* **Hiding features unavailable to certain users**: If a feature (e.g., "staking\_quest") is only available to users who meet certain criteria (e.g., KYC verified), tag that quest `staking_enabled`. Only pass `data-show-tags="staking_enabled"` for users who have met those criteria.
By strategically combining tags assigned in the Claimr admin panel with the `data-show-tags` and `data-hide-tags` attributes in your widget script, you can create highly dynamic and personalized campaign experiences for your users.
# Build a campaign with Puzzle rewards
Source: https://docs.claimr.io/how-to/how-to-build-a-campaign-with-puzzle-rewards
Build a campaign that uses Puzzle rewards, from puzzle piece reward creation to task logic and final answer validation.
Puzzle rewards are collectible pieces that users earn by completing tasks throughout a quest. They're used to create multi-step challenges or quests where users gather multiple puzzle pieces and then solve a final task based on the clues they've collected.
Puzzle rewards help structure narrative or logic-based progression within any campaign. They encourage users to:
* Complete more tasks to collect all puzzle pieces.
* Pay attention to detail in clues or visuals.
* Solve a final challenge to validate their understanding.
* Stay engaged through multi-step discovery.
This tutorial walks through building a campaign that uses Puzzle rewards, from reward creation to task logic and the final answer validation.
## Create your campaign
![Campaign creation form]()
From your Claimr dashboard:
1. Click **Campaigns** in the navigation menu.
2. On the **Campaigns** page, click **Create new campaign**.
3. In the opened window, fill in the following details:
* **Name:** Enter a name for your campaign.
* **Campaign points name:** Enter the label for points users will earn (e.g., Points, Tokens).
* **Sign-in options:** Choose any supported sign-in method, depending on your audience.
4. Click **Continue**, then select **Empty**.
5. Click **Continue**, then select your campaign's visual theme.
## Create your quest
Once your campaign is created, you'll land in the Groups of quests section:
* Rename the default group if needed by clicking the pencil icon.
* Inside that group, click **+ Create quest**.
* Enter a descriptive name for your puzzle quest (e.g., "Puzzle Quest") and click **Create**.
* Click the quest card to open its settings page.
From here, you can begin adding tasks and configuring the quest's general settings (name, image, description).
## Create puzzle piece rewards
You'll need to create one reward for each puzzle piece the user should collect.
Go to the **Rewards** tab and click **Create reward**.
* **Short name:** Enter a name like "Puzzle 1", "Puzzle 2", etc.
* **Description:** Label the piece (e.g., "Puzzle Piece 1") or set the instruction for your users.
* **Image (optional):** Upload a visual clue: letter, number, or fragment of a bigger picture.
Select **Puzzle Piece** as the reward type and click **Create** to save the reward. Repeat these steps for each individual puzzle piece.
![Rewards dashboard with puzzle pieces]()
All created rewards will appear in the Rewards dashboard.
## Create your tasks
Now that your puzzle rewards are set, add tasks that distribute them to users. Each puzzle piece requires two tasks:
1. A core task (e.g., Follow on X, Subscribe to YouTube).
2. A **Claim a reward** task immediately after.
To add a task, on the quest settings page, click **+ Create new task**.
### Configure the core task
* Select a task type like Follow on X or Subscribe to a channel.
* Fill in the required fields (e.g., URL, message).
* Click **Create task** to save.
### Add a Claim a reward task
![Create new task button]()
Right after the core task, add a **Claim reward** task to deliver the puzzle piece.
Click **+ Create new task**.
Under Category, select **Common**, then choose **Claim a reward** and click **Continue**.
* **Completion points:** Set the base reward for claiming the piece.
* **Points multiplier (%):** Optional.
* **Reward:** Select the appropriate Puzzle Piece reward (e.g., Puzzle 1).
Click **Create task** to save.
Repeat this pair (core task + claim reward) for every puzzle piece.
## Create a final Secret code task
Once all puzzle pieces are distributed, add a final challenge that users can only complete if they've correctly interpreted the clues.
Click **+ Create new task** in the same quest.
Under Category, select **Common**, then choose **Secret code** and click **Continue**.
* **Completion points:** Set the number of points awarded when the user submits the correct code.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 5% multiplier increases the final reward by 5%.
* **Recurrence:** Control how often users can complete the task:
* **Once** - can only be completed one time per user.
* **8h** - available once every eight hours.
* **Daily** - available once every 24 hours.
* **Weekly** - available once every 7 days.
* **Multiple** - stays open and can be completed as many times as needed, one after another, without any waiting time.
* **Message (optional):** Enter a message displayed above the input field to guide users.
* **Secret Code:** Enter the correct answer (case-sensitive).
Click **Create task** to save.
All created tasks will appear in your campaign.
![Full list of tasks in the campaign]()
Go through them, change the order if needed, and preview how they'll appear to users:
1. Click the **Preview** button (play icon) from the task or quest settings.
2. The preview opens in a new tab and shows desktop, tablet, and mobile views.
Try interacting with the task flow to verify logic and visibility.
## How Secret code tasks appear to users
![Secret code task as seen by users]()
When users encounter a Secret code task, they see:
* The instruction message you added (if any).
* An input field.
* A submit button.
If they enter the correct code, the task is marked complete and the reward is granted. If incorrect, the task remains incomplete.
If Recurrence is set to Multiple, users can return and attempt again without waiting.
# Integrate Claimr widget into your dApp
Source: https://docs.claimr.io/how-to/integrate-claimr-widget-into-dapp
Use this tutorial to integrate the Claimr widget with a custom wallet connection in your dApp, including anonymous or privacy-preserving wallet setups.
If your dApp already connects the user's wallet, the Claimr widget can use that wallet instead of asking the user to connect again. Your app stays in charge of the wallet: the widget asks, and your code decides how to connect, sign, and send transactions.
This setup is ideal for dApps that use custom or anonymous wallet layers, such as embedded wallet providers or flows that require privacy. The user connects once, at the level of your app, and never sees a second wallet prompt from the widget.
In this tutorial, you will:
* Configure the campaign to sign users in with their wallet.
* Load the widget in dApp mode.
* Answer the widget's wallet requests with your app's wallet.
* Keep the widget's session in sync when the wallet disconnects or changes.
The code examples use React with [wagmi](https://wagmi.sh) and [RainbowKit](https://www.rainbowkit.com). The same approach works with any wallet library and framework: only the calls inside the handler change.
## Prerequisites
* A React app that already connects wallets with wagmi and RainbowKit, and renders inside `WagmiProvider` and `RainbowKitProvider`.
* The Claimr widget set up with the shared loader, a provider, and a widget component, as described in [Integrate Claimr into a React app](/frameworks/react). For Next.js or Vue, follow [Next.js](/frameworks/nextjs) or [Vue and Nuxt](/frameworks/vue-and-nuxt) instead.
## Configure the campaign
In the Claimr admin panel, open your campaign, click **Settings** in the left-hand menu, then select **Sign-in options**.
* **Require login to start a task**: users must sign in with their wallet before they can begin any task. Claimr needs this to link actions to a wallet address.
* **Require token to start campaign** *(optional)*: users need a specific token to access the campaign.
* **Wallet change is disabled** *(optional)*: prevents users from switching wallets mid-session.
* **Disable users merge** *(optional)*: stops Claimr from merging user identities across sign-in methods.
Select **Wallet** in the **Select sign-in services** field, select your blockchain in the **Chains** field, and enter a message in the **Wallet message** field. Users see this message when they sign, so describe why they are signing.
## Load the widget in dApp mode
Add `platform: 'dapp'` to the loader configuration in your Claimr provider. This tells the widget to send wallet operations to your app instead of looking for a wallet extension on its own.
```ts theme={"dark"}
loadClaimr({
organization: import.meta.env.VITE_CLAIMR_ORGANIZATION,
campaign: import.meta.env.VITE_CLAIMR_CAMPAIGN,
container: CLAIMR_CONTAINER_ID,
autoresize: true,
platform: 'dapp',
});
```
If you embed the script tag directly instead of using the loader, add `data-platform="dapp"` to it.
## Answer wallet requests
The widget asks your app for wallet operations through one callback, `on_wallet_request`. It receives an object with an `op` field, and must return a result or throw an error:
| `op` | Receives | Return |
| - | - | - |
| `connect` | `namespaces`: the chains the widget can act on, in preference order | `{ address, chain }` |
| `sign_message` | `address`, `message` | `{ signature }` |
| `send_transaction` | `chain_id`, `address`, `request`, `contract`, `method`, `args`, `abi`, `fee` | `{ hash }` |
| `disconnect` | None | `{}` |
Throwing tells the widget the operation failed, and the widget shows the error right away instead of waiting.
Create a component that assigns the handler with your wagmi hooks:
```tsx src/claimr/ClaimrWalletBridge.tsx expandable theme={"dark"}
import { useEffect, useRef } from 'react';
import { useConnectModal } from '@rainbow-me/rainbowkit';
import { useAccount, useChainId, useDisconnect, useSignMessage, useSwitchChain, useWriteContract } from 'wagmi';
import type { Abi, Address } from 'viem';
import { getClaimr, type ClaimrWalletRequest } from '../lib/claimr';
/** Answers the widget's wallet requests with the wallet your app already manages. Render once. */
export function ClaimrWalletBridge() {
const { address } = useAccount();
const chainId = useChainId();
const { openConnectModal } = useConnectModal();
const { signMessageAsync } = useSignMessage();
const { writeContractAsync } = useWriteContract();
const { switchChainAsync } = useSwitchChain();
const { disconnect } = useDisconnect();
useEffect(() => {
const handler = async (request: ClaimrWalletRequest) => {
switch (request.op) {
case 'connect':
if (address) return { address, chain: String(chainId) };
openConnectModal?.();
throw new Error('The user has not connected a wallet yet');
case 'sign_message':
return { signature: await signMessageAsync({ message: request.message }) };
case 'send_transaction': {
const target = Number(request.chain_id);
if (target !== chainId) await switchChainAsync({ chainId: target });
const hash = await writeContractAsync({
abi: request.abi as Abi,
address: request.contract as Address,
functionName: request.method,
args: request.args,
chainId: target,
});
return { hash };
}
case 'disconnect':
disconnect();
return {};
}
};
// The handler closes over the latest wallet state, so reassign it when that state changes.
const claimr = getClaimr();
if (claimr) claimr.on_wallet_request = handler;
}, [address, chainId, openConnectModal, signMessageAsync, writeContractAsync, switchChainAsync, disconnect]);
// Log the widget out when the wallet disconnects or changes. Comparing with the previous address
// skips the page load, when wagmi briefly reports no address while it reconnects.
const previousAddress = useRef(address);
useEffect(() => {
if (previousAddress.current && previousAddress.current !== address) getClaimr()?.logout();
previousAddress.current = address;
}, [address]);
return null;
}
```
Render it inside your Claimr provider once the script has loaded, so that `window.claimr` exists when the handler is assigned:
```tsx theme={"dark"}
const { loaded } = useClaimr();
return <>{loaded &&
}>;
```
`send_transaction` carries the transaction twice. `request` is the pre-encoded EIP-1193 call, and `contract`, `method`, `args`, and `abi` describe the same call at the ABI level. The example rebuilds the call with wagmi's `writeContractAsync`. If your wallet library sends raw EIP-1193 requests, send `request` instead.
## Sign the user in from your app (optional)
With `on_wallet_request` in place, the widget asks for a signature when the user signs in inside the widget. If your app already runs its own sign-in step, you can sign the user in to Claimr at the same moment with `connect_wallet`:
```tsx theme={"dark"}
import { nanoid } from 'nanoid';
import { useAccount, useChainId, useSignMessage } from 'wagmi';
import { getClaimr } from '../lib/claimr';
function buildSignMessage(statement: string, domain: string, refId?: string) {
let message = `${statement}\n\nURI:\n${domain}\n\n`;
if (refId) message += `Referral ID:\n${refId}\n\n`;
message += `Nonce:\n${nanoid(16)}\n\nIssued At:\n${new Date().toISOString()}`;
return message;
}
export function useClaimrSignIn() {
const { address } = useAccount();
const chainId = useChainId();
const { signMessageAsync } = useSignMessage();
return async () => {
if (!address) return;
const refId = new URLSearchParams(window.location.search).get('ref') ?? undefined;
const message = buildSignMessage('Sign in to My dApp quests', window.location.origin, refId);
const signature = await signMessageAsync({ message });
getClaimr()?.connect_wallet(address, signature, message, chainId);
};
}
```
`connect_wallet` is safe to call before the widget finishes loading: the loader keeps the wallet and passes it on when the campaign loads. The loader also remembers the wallet address across page loads.
## How it works
**When the user opens the app:**
1. Your app loads, and the Claimr provider loads the widget script in dApp mode.
2. `ClaimrWalletBridge` assigns `on_wallet_request`.
3. The widget renders inside its container.
**When the user signs in to the widget:**
1. The widget sends a `connect` request. Your handler returns the connected address, or opens the RainbowKit modal if no wallet is connected.
2. The widget sends a `sign_message` request with its sign-in message. Your handler signs it with the user's wallet.
3. Claimr verifies the signature and signs the user in.
**When a task needs an on-chain action**, such as minting an NFT:
1. The widget sends a `send_transaction` request.
2. Your handler switches the chain if needed, sends the transaction, and returns its hash.
3. Claimr verifies the transaction.
**When the wallet disconnects or changes**, the bridge calls `logout()`, so the widget does not keep a session for a wallet your app has let go of.
## Summary
| Method or callback | Called by | Purpose |
| - | - | - |
| `on_wallet_request` | Claimr widget | Ask your app to connect, sign, send, or disconnect. One callback, with a real result for every request. |
| `connect_wallet` | Your app | Sign the user in to Claimr with a signature your app already collected. |
| `logout` | Your app | End the Claimr session when the wallet disconnects or changes. |
| `on_request` | Claimr widget | The earlier transaction-only callback. Still supported, and used only when `on_wallet_request` is not set. |
See the [SDK guide](/sdk-guide#on_wallet_request) for the full wallet callback reference.
# Integrate Claimr widget into a Telegram mini app
Source: https://docs.claimr.io/how-to/integrating-claimr-widget-into-telegram-mini-app
Integrate the Claimr widget into your Telegram Mini App to leverage Claimr's engagement features while automatically using the user's Telegram context.
You can run the Claimr widget inside a Telegram Mini App. In Telegram mode, the widget reads the Mini App context and signs the user in with their Telegram account automatically, so they never see a login screen.
In this tutorial, you will:
* Configure the campaign to sign users in with Telegram.
* Load Telegram's Mini App script and the Claimr widget in Telegram mode.
* Set up the Mini App window so the widget is comfortable to use.
The code examples use React. For other frameworks, follow the matching [framework guide](/frameworks/overview) and apply the same Telegram settings.
## Prerequisites
* A Telegram bot with a Mini App configured through [@BotFather](https://t.me/BotFather).
* A web app that you serve as the Mini App, with the Claimr widget set up as described in [Integrate Claimr into a React app](/frameworks/react).
## Configure the campaign
In the Claimr admin panel, open your campaign, click **Settings**, then select **Sign-in options**. In **Select sign-in services**, make sure **Telegram** is selected. This lets users take part in the campaign with the Telegram identity the Mini App provides.
![Sign-in options page]()
## Set up the Mini App
Add Telegram's script to the `` of your app's HTML page, before your own scripts:
```html index.html theme={"dark"}
```
This script creates `window.Telegram.WebApp`. The Claimr widget reads the user's Telegram identity from it, so without it the widget cannot sign the user in.
Add `platform: 'telegram'` to the loader configuration in your Claimr provider:
```ts theme={"dark"}
loadClaimr({
organization: import.meta.env.VITE_CLAIMR_ORGANIZATION,
campaign: import.meta.env.VITE_CLAIMR_CAMPAIGN,
container: CLAIMR_CONTAINER_ID,
autoresize: true,
platform: 'telegram',
});
```
If you embed the script tag directly instead of using the loader, add `data-platform="telegram"` to it.
When your app starts, expand the Mini App to full height and stop accidental closing:
```tsx src/App.tsx theme={"dark"}
import { useEffect } from 'react';
export function App() {
useEffect(() => {
const webApp = window.Telegram?.WebApp;
webApp?.expand();
webApp?.enableClosingConfirmation();
webApp?.disableVerticalSwipes();
}, []);
return ;
}
```
* `expand()` maximizes the Mini App window.
* `enableClosingConfirmation()` asks the user to confirm before closing the Mini App.
* `disableVerticalSwipes()` stops vertical swipes from closing the Mini App while the user scrolls the widget.
With TypeScript, install `@types/telegram-web-app` to get types for `window.Telegram`.
Open the Mini App from your bot in the Telegram app. Outside Telegram, `window.Telegram.WebApp` has no user data, so the widget cannot sign anyone in automatically.
## How it works
1. A user opens your Mini App in Telegram.
2. Your app loads the Claimr widget with `platform: 'telegram'`.
3. The widget reads the Mini App context from `window.Telegram.WebApp` and signs the user in with their Telegram account.
4. The widget shows the campaign's quests and tasks for that user.
5. If a task needs another account, such as Discord, email, or a wallet, the widget asks the user to link it.
6. Task completions are saved to the user's Claimr profile, linked to their Telegram identity.
Inside Telegram, the widget can also use Mini App features for some tasks, such as sharing a story, sharing a message, or adding the app to the home screen. These need no extra code in your app.
# How to
Source: https://docs.claimr.io/how-to/overview
Follow step-by-step tutorials to build platform-specific campaigns, integrate the Claimr widget, and unlock advanced features like tags, custom points, and puzzle rewards.
Ready to start using Claimr or want to master a specific feature? This section provides step-by-step tutorials to guide you through building and managing successful campaigns on the Claimr platform.
Looking to create campaigns tailored for specific social platforms, or integrate Claimr into your own product? Browse the tutorials below.
Build a campaign focused on X (Twitter) engagement, from setup to the most popular X tasks.
Build a campaign that grows and rewards your Discord community.
Connect the Claimr widget to a custom wallet layer in your Web3 application.
Bring Claimr's engagement features into your Telegram Mini App.
Dynamically show or hide Quests and Groups for different user segments.
Reward users in Claimr for actions they complete outside the platform.
Create multi-step challenges where users collect clues and solve a final task.
# Localization
Source: https://docs.claimr.io/localization
Add languages to your campaign, create custom localization keys, and localize rich text descriptions so users see content in their own language.
## What is campaign localization?
It is the process of translating and culturally adapting your campaign's text and user interface into multiple languages. Essentially, it means making your campaign accessible and understandable to people who speak different languages.
Using campaign localization offers several key benefits:
* **Reach a global audience:** By providing content in various languages, you can significantly expand your campaign's reach beyond a single linguistic group. This allows participants worldwide to engage with your campaign in a way that feels natural to them.
* **Enhance user experience:** Participants are more likely to interact with and understand your campaign when it's presented in their native language. This creates a more inclusive, user-friendly, and effective experience, leading to higher engagement and satisfaction.
* **Seamless integration:** Create and link custom translations to any text field within your campaign. The platform then automatically displays the correct translation based on the user's active language. Plus, many system-level components are already translated by default, simplifying the process even further.
To enable localization in your campaign, simply add the desired languages in your settings using the steps below. While basic system elements will already be translated by default, you can customize additional texts in two ways:
* By creating custom keys in Customization → Localization
* By using the dedicated editor for Rich Text blocks (in forms, descriptions, challenges, etc.)
This article will guide you step-by-step through how this all works.
## Add languages to your campaign
First, declare which languages your campaign will support.
Navigate to the specific **Campaign** you want to localize.
Go to the campaign **Settings**.
Locate the **Languages** section. To make changes, click the **edit icon** (a pencil) on the right.
The editable settings window will open.
* The **Language** field shows the campaign's default language.
* Click into the **Add more languages** field to see a dropdown list of available languages. Select one or more languages to add.
Click **Update** to save your changes. The **Languages** section will now display the default language and all additional languages you have enabled.
Once you've added multiple languages to your campaign, you can let users choose their preferred language directly in the widget.
### Enable the language selector
In your campaign settings, turn on the Show language selector toggle. This adds a small language menu to the corner of the widget, so users can switch languages anytime.
### Preview translations during setup
While configuring your campaign, you can test how the widget appears in different languages using the built-in preview language selector. This option shows all available translations - even if not added to your live settings - and helps you check formatting and alignment.
### set\_language method
You can control the widget language manually using the method `set_language(language)`. This lets you align the widget with the rest of your site or app based on user preferences.
## Customize localization
### Create a custom key
![Create a custom key]()
Go to **Customization** → **Localization** tab and within the JSON file for the relevant language:
* Create a key with any convenient name (for example: `my_custom_group_name`).
* Add the value for this key. For instance, for the key `my_custom_group_name`, you would enter "Name meiner Gruppe".
The localization keys follow the [i18next](https://www.i18next.com/) format, which is the internationalization framework used in Claimr.
Example of creating a custom key in the localization editor for German:
```json theme={"dark"}
{
"my_custom_group_name": "Name meiner Gruppe"
}
```
### Use your custom key
Now, this key can be used anywhere in the system where there are name fields visible to the end-user:
* Group names
* Button names
* Quest names
* Action names
* Task descriptions
* Any other text displayed in the widget
For example, in the group settings, simply specify the key `group_name` as the value for the "Name" field.
![Group name field using a custom key]()
You can also reference specific campaign objects in your translations using dynamic keys. For example, `{{task.name}}` will automatically insert the current task's name based on the active language.
This works for various object types such as task, group, quest, and action.
### How it works in the interface
After the key has been added and applied to elements:
* In the widget, the system automatically inserts the translation according to the active language.
* If the user changes the language, the translation updates automatically.
![Quest card displaying content in German when selected]()
The built-in language switcher works immediately if languages are activated in the general settings.
For example, if you switch the widget from English to German - the widget will show "Name meiner Gruppe" instead of the English name.
## Localize descriptions
Rich text descriptions are formatted content blocks used in forms, group descriptions, quest descriptions, and other areas where detailed text, images, or special formatting are needed. This localization method is separate from using custom translation keys for simple text strings, as it manages the entire formatted content block per language.
Firstly, ensure you have enabled languages for your campaign before localizing rich text descriptions. Refer to the "Add languages to your campaign" section for instructions.
Navigate to where you need to create or edit a rich text description. The rich text editing window will open.
The editor defaults to **English**. Create your complete description in English, using all available rich text formatting tools (bold, lists, images, etc.).
Use the language selector in the bottom right corner of the editor to switch to another active language.
The content area will clear. Enter the full description for the newly selected language. You are creating an independent, formatted content block for each language.
Continue switching between languages and creating a unique rich text description for each.
Click the **Save** button. A single save action saves all the localized versions you've created within that rich text block.
### How it works in the interface
After the localized rich text descriptions are saved:
* In the widget, the system automatically displays the correct rich text description based on the active language.
* If the user changes the language using the built-in language switcher, the rich text content updates automatically.
Rich text descriptions do **not** use custom localization keys. You directly input the full content for each language in the editor.
# Authorize a connection
Source: https://docs.claimr.io/mcp/authorize-a-connection
Sign in to Claimr from your AI assistant and choose which organizations, campaigns, and permissions the connection gets.
When your AI assistant connects to Claimr for the first time, it opens a Claimr sign-in page. You sign in, then choose exactly what the assistant can reach. Nothing is shared until you click **Authorize**.
## Sign in
Sign in with the email and password of your Claimr admin panel account, or click **Sign in with Google** if you use Google to sign in to the panel.
The page shows the name of the assistant asking for access, for example "Claude is requesting access to your Claimr account". If you don't recognize the assistant, close the page.
## Choose what the assistant can access
After you sign in, the consent screen has three sections.
Choose **All organizations** or **Specific organizations**. The list only shows organizations you belong to that have MCP access turned on.
Choose **All campaigns** or **Specific campaigns**. With specific campaigns, pick them from the list, grouped by organization. The list only shows campaigns your role can open.
Choose **Full access** or **Limited access**. With limited access, set **Read** and **Write** for each area in the table below. Turning on **Write** also turns on **Read**.
Click **Authorize** to finish. Your assistant receives access and you can go back to the chat.
Start narrow. Give a new connection one campaign and only the areas you plan to work on. You can change this later from your profile.
## Permission areas
| Area | What it covers |
| - | - |
| **Campaigns** | Campaign settings, groups, images, and descriptions |
| **Quests** | Quests, tasks, and pre-quests |
| **Rewards** | Daily check-ins, forms, items, prize pools, raffles, teams, and tiers |
| **Tournaments** | Tournaments and raffles tied to them |
| **Customization** | Custom CSS, layout, widget options, and translations |
| **Segments and exports** | User segments, and starting CSV exports of participant data. Files are downloaded in the admin panel only. |
| **Organization** | Creating new campaigns |
**Read** lets the assistant look at an area. **Write** lets it create, change, and delete things in that area.
## Your role always applies
A connection can never do more than your own team role allows. If your role can't edit quests in a campaign, the assistant can't either, even with **Full access**. The consent screen only narrows what your role already permits. See [Team roles and management](/team-roles-and-management).
A request goes through only when all of these allow it:
1. Your role in the organization and campaign.
2. The organizations and campaigns you chose for the connection.
3. The permission areas you chose for the connection.
4. MCP access being turned on for the organization.
## How long a connection lasts
A connection stays signed in while you use it. Your assistant refreshes its access automatically in the background. A connection that goes unused for 90 days expires, and your assistant asks you to sign in again.
You can revoke a connection at any time. See [Manage connections](/mcp/manage-connections).
## If you see no organizations
If the consent screen doesn't list any organizations, you'll see one of these messages:
* **"You don't belong to any organization yet."** Ask an organization admin to invite you. Access appears automatically once you join.
* **"None of your organizations have MCP access yet."** Your organizations are still on the waitlist. Contact [support@claimr.io](mailto:support@claimr.io) to request access.
# Connect an AI assistant
Source: https://docs.claimr.io/mcp/connect-an-ai-assistant
Add the Claimr MCP server to Claude, ChatGPT, Claude Code, Cursor, or any other MCP client that supports remote servers with OAuth.
Every MCP client connects to Claimr the same way: you add the server URL, then sign in with your Claimr account when the client asks you to.
```text theme={"dark"}
https://prod.claimr.io/mcp
```
The Claimr MCP server is a remote server over Streamable HTTP with OAuth 2.1 sign-in. You don't need an API token or a client secret. Clients that support dynamic client registration, which includes Claude and ChatGPT, register themselves automatically.
Menu names in AI assistants change often. If a step below doesn't match what you see, look for a setting called **Connectors**, **Apps**, **Integrations**, or **MCP servers**.
## Claude (web and desktop)
In Claude, open **Settings** and go to **Connectors**.
Click **Add custom connector**. Enter `Claimr` as the name and `https://prod.claimr.io/mcp` as the URL, then click **Add**.
Click **Connect** next to the new connector. A Claimr sign-in page opens in your browser.
Sign in with your Claimr account and choose what the connection can access. See [Authorize a connection](/mcp/authorize-a-connection).
Start a new chat and make sure the Claimr connector is turned on in the tools menu. Then ask something like "List my Claimr campaigns".
On Team and Enterprise plans, an owner may need to add the connector for the organization before members can connect.
## ChatGPT
In ChatGPT, open **Settings** and go to **Apps & Connectors**. If your plan requires it, turn on **Developer mode** under **Advanced settings**.
Click **Create**. Enter `Claimr` as the name, `https://prod.claimr.io/mcp` as the MCP server URL, and choose **OAuth** as the authentication method.
ChatGPT opens the Claimr sign-in page. Sign in and choose what the connection can access. See [Authorize a connection](/mcp/authorize-a-connection).
In a new chat, add Claimr from the tools menu, then ask something like "Show me the quests in my campaign".
## Claude Code
Add the server from your terminal:
```bash theme={"dark"}
claude mcp add --transport http claimr https://prod.claimr.io/mcp
```
Then start Claude Code, run `/mcp`, select **claimr**, and choose **Authenticate**. Your browser opens the Claimr sign-in page.
## Cursor, VS Code, and other clients
Any client that supports remote MCP servers with OAuth can connect. Add the server to the client's MCP configuration, for example in Cursor's `mcp.json`:
```json theme={"dark"}
{
"mcpServers": {
"claimr": {
"url": "https://prod.claimr.io/mcp"
}
}
}
```
The client starts the sign-in flow the first time it calls the server.
Clients that only support local (stdio) servers, or that expect a static API key, can't connect directly. The Claimr MCP server only accepts OAuth sign-in.
## Check that it works
Ask the assistant:
> List my Claimr organizations and campaigns.
If the assistant lists them, the connection works. If it reports an error, see [Troubleshooting](/mcp/troubleshooting).
# Example prompts
Source: https://docs.claimr.io/mcp/example-prompts
Prompts you can paste into Claude, ChatGPT, or another AI assistant to build, edit, and review Claimr campaigns through MCP.
Use these prompts as a starting point. Replace the names in quotes with your own. The more specific you are about names, numbers, and links, the fewer follow-up questions the assistant asks.
Start each conversation by naming your organization and campaign, for example "I'm working on the Summer Launch campaign in Acme". The assistant remembers it for the rest of the chat.
## Explore
> List my Claimr organizations and the campaigns in each one.
> Show me every group, quest, and task in the "Summer Launch" campaign as an outline, with the points each task gives.
> Which task types can reward Discord activity? Explain what each one checks.
## Build a campaign
> Create a campaign called "Summer Launch". Add a group called "Get started" with three quests:
>
> 1. "Join the community": follow @acme on X and join our Telegram channel t.me/acme, 50 points each.
> 2. "Spread the word": repost our pinned post on X, 100 points.
> 3. "Go on-chain": connect a wallet, 150 points.
> Show me any issues Claimr reports on the tasks.
> Add a second group called "Weekly challenges" and move the "Spread the word" quest into it.
## Edit in bulk
> Double the points of every X task in "Summer Launch".
> Write a short, friendly description for every quest that doesn't have one. Keep each under two sentences.
> Rename the quests in the "Get started" group so each name starts with a verb.
## Rewards and progression
> Add five tiers: Bronze, Silver, Gold, Platinum, and Diamond, each 500 XP wide.
> Set up a seven-day daily check-in that pays 10 XP a day and 50 XP on day seven.
> Create a prize pool for the leaderboard: 500 USDT for first place, 250 for places 2 and 3, and 50 for places 4 to 10.
> Create a raffle for participants with at least 1,000 XP, weighted by XP, with 10 winners. Don't run the draw yet.
## Forms and quizzes
> Create a quiz called "Acme basics" with five multiple-choice questions about our product, one page each, with an explanation for every answer. Then add a form task for it to the "Learn" quest worth 200 points.
## Audience
> Create a segment for participants from Germany or France with more than 100 XP.
## Export data
> How many participants took part in the "Go on-chain" quest but haven't finished it? Then export their wallets and X accounts.
> Export the activity of participants from Germany with more than 500 XP, only tasks completed in September.
## Look and language
> Summarize how "Summer Launch" is customized.
> Turn on the leaderboard in the widget and make quest cards wrap.
> Translate the widget into Spanish and German, and let participants switch languages.
> Add CSS so quest card titles use our brand color #F3FF06.
## Review
> Review "Summer Launch" before we publish. List quests without images, tasks without descriptions, groups with no quests, and anything that looks misconfigured.
> Explain how referrals work in this campaign: what a referrer earns and what a new participant has to do.
> Check the login requirements and tell me if participants need to connect X before they can start.
# How tools work
Source: https://docs.claimr.io/mcp/how-tools-work
Understand how the AI assistant finds your campaigns, remembers what you're working on, and makes changes through Claimr MCP tools.
The Claimr MCP server offers a set of tools, each one a single action such as "list quests" or "create task". Your assistant picks the tools it needs based on your request. You don't call tools yourself, but knowing how they behave helps you write better prompts and check the results.
## Changes are saved right away
When the assistant creates, updates, or deletes something, the change is saved immediately, the same as clicking **Save** in the admin panel. Every change stays editable in the panel afterwards.
Publishing a campaign still happens in the admin panel. See [Publish campaign](/widget/publish-campaign).
Most AI assistants ask you to confirm before running a tool that changes data. Read the confirmation, especially for deletes, draws, and tournament starts. Some actions can't be undone.
## Finding your campaign
You can refer to campaigns, groups, quests, and tasks by name, slug, or ID. For example, "the Summer Launch campaign" or "the quest called Join our community" both work.
A good first message tells the assistant which organization and campaign you want to work on:
> I'm working on the Summer Launch campaign in the Acme organization.
## The assistant remembers where you are
At the start of a conversation, the assistant creates a context with `claimr_create_context`. The context remembers the organization, campaign, group, quest, and task you last worked with, so follow-up requests like "now add a task to it" land in the right place without you repeating names.
A context lasts seven days from its last use. A new conversation starts a new context.
## Only the fields you mention change
Update tools change only the fields the assistant passes. If you ask to change a quest's name, its image, tasks, and settings stay as they are.
A few tools replace a whole list rather than merging it, for example the conditions of a segment, the answer options of a form question, or the brackets of a prize pool. The assistant sends the full list in those cases.
## Deleting is careful by default
Deletes are designed to keep related content safe:
* Deleting a group keeps its quests in the campaign, unattached.
* Deleting a quest keeps its tasks in the campaign.
* A form can't be deleted while a task still uses it.
* An image can't be deleted while a quest, task, tier, team, item, pre-quest, or the campaign still uses it.
* A running tournament has to be ended before it can be deleted.
## Task data is checked
When the assistant creates or updates a task, Claimr checks the task's settings and returns a list of issues it couldn't resolve, for example an X account that doesn't exist. The task is still saved, so ask the assistant to show you any issues and fix them before you publish.
## Images
Tools that take an image, such as a campaign, quest, or task image, accept a public image link or an image the assistant generates. Claimr re-hosts the image on its own CDN, so the original link doesn't need to stay online.
## Descriptions
Long descriptions of campaigns, groups, quests, tasks, tournaments, and completion pop-ups are written as plain text. A blank line starts a new paragraph. Writing a new description replaces any formatting, images, or links the old one had, so add those back in the panel if you need them. Writing a completion pop-up description also turns that pop-up on.
## Permissions
Every tool checks your role and the connection's permissions before it runs. If the assistant reports "Access denied" or "This MCP connection has no write access to Quests", see [Troubleshooting](/mcp/troubleshooting).
See every tool, grouped by area.
Prompts that make the most of these tools.
# Manage connections
Source: https://docs.claimr.io/mcp/manage-connections
See every AI assistant connected to your account or organization, change what it can reach, and revoke access.
You can review AI assistant connections in two places: your own connections in your profile, and every connection that reaches an organization on the organization's **API** page.
## Your connections
In the Claimr admin panel, open your profile.
The **My MCP connections** section lists each assistant you connected. Each entry shows the assistant's name, the organizations and campaigns it can reach, its permissions, and when it was last used.
* Click the edit icon to change the organizations, campaigns, and permissions of that connection. You can pick anything your role allows.
* Click the delete icon to revoke the connection. This disconnects the assistant from every organization it reaches.
The **My MCP connections** section only appears once you have at least one connection.
## Connections to your organization
Organization admins can see every AI assistant connection that reaches the organization, including connections made by other team members.
In the Claimr admin panel, open your organization and go to **API**.
The **MCP connections** section lists each connection with:
* **Connected by**: the team member who authorized it.
* **AI assistant**: the assistant's name, for example Claude or ChatGPT.
* **Organizations**: whether it reaches all of that member's organizations or only this one.
* **Campaigns**: all campaigns or the specific ones it can reach.
* **Permissions**: the areas it can read or write.
* **Connected** and **Last used**: when it was authorized and last made a request.
* Click the edit icon to take permissions away from a connection. Admins can only remove access here, never add it.
* Click the delete icon to revoke the connection.
A connection can reach more than one organization. Access you take away here, and revoking it, applies to the whole connection, including other organizations it reaches.
Viewing this section needs read access to the organization's API settings. Editing or revoking needs write access.
## When to revoke a connection
Revoke a connection when:
* You no longer use that assistant with Claimr.
* A team member who authorized it leaves your team.
* You see a connection you don't recognize, or one that was used when you didn't expect it.
After you revoke a connection, the assistant gets an error on its next request. To use it again, reconnect and authorize it from scratch.
# Claimr MCP
Source: https://docs.claimr.io/mcp/overview
Connect Claude, ChatGPT, or any MCP-compatible AI assistant to Claimr and build, edit, and review your campaigns by describing what you want in plain language.
Claimr MCP lets an AI assistant work inside your Claimr organization for you. Once connected, you can ask the assistant to set up a campaign, add quests and tasks, tune the leaderboard, translate the widget, or review how a campaign is configured. The assistant does the work through the same permissions you have in the Claimr admin panel.
MCP (Model Context Protocol) is an open standard that AI assistants use to connect to external tools. Claimr runs a remote MCP server, so there is nothing to install. You add one URL to your assistant and sign in with your Claimr account.
## Server URL
```text theme={"dark"}
https://prod.claimr.io/mcp
```
The server uses OAuth for sign-in. Your assistant opens a Claimr sign-in page the first time it connects, and you choose what the connection can reach.
Claimr MCP is rolling out through a waitlist. Your organization needs MCP access turned on before its campaigns show up for a connection. Contact [support@claimr.io](mailto:support@claimr.io) to join the waitlist.
## What you can do with Claimr MCP
**Build campaigns from a brief**: Describe a campaign in a few sentences and let the assistant create the campaign, its groups, quests, and tasks in one go.
**Edit in bulk**: Rename quests, change points across many tasks, reorder groups, or rewrite descriptions without clicking through each item in the panel.
**Pick the right task type**: The assistant can browse more than 200 task types across X, Discord, Telegram, Reddit, TikTok, YouTube, Web3, and more, and fill in the fields each type needs.
**Set up rewards and competition**: Add tiers, prize pools, daily check-ins, items, teams, raffles, and tournaments.
**Customize the widget**: Change widget options, edit the layout and custom CSS, and translate the widget into other languages.
**Review what you have**: Ask the assistant to audit a campaign, list tasks without descriptions, or explain how the referral program is configured.
**Export data**: Describe the participants you need, for example everyone who completed a quest, and the assistant sets up a CSV export. You download the file in the admin panel.
Add Claimr to Claude, ChatGPT, Claude Code, Cursor, and other MCP clients.
Sign in and choose which organizations, campaigns, and permissions the assistant gets.
See, narrow, or revoke AI assistant connections to your account and organization.
Ready-to-use prompts for building and editing campaigns.
Learn how the assistant finds your campaigns and what it can change.
Every tool the Claimr MCP server offers, grouped by area.
## What the assistant can't do
Claimr MCP is built for configuring campaigns, not for reading your participants' personal data. The assistant can't see participant names, social handles, wallet addresses, emails, or form answers. It can start a CSV export, but only you download the file, in the admin panel. See [Security and privacy](/mcp/security-and-privacy) for details.
# Security and privacy
Source: https://docs.claimr.io/mcp/security-and-privacy
How Claimr MCP protects your organization and your participants' data when you connect an AI assistant.
Connecting an AI assistant means the assistant's provider processes what Claimr sends back. Claimr MCP is designed so that what the assistant sees is limited to campaign configuration, and so that you stay in control of what it can change.
## Participant data stays in Claimr
Claimr MCP doesn't send participants' personal data to your AI assistant. The assistant can't read:
* Participant names, emails, social handles, or wallet addresses.
* Form and quiz answers.
* Raffle candidates and winners.
* Tournament standings.
* The participants in a segment.
To see this data, open the campaign in the Claimr admin panel.
The assistant can start a CSV export of participant data, but it never receives the file or a download link. It gets the number of matching participants and a link to the export in the admin panel, where a signed-in team member downloads it. See [Export tools](/mcp/tools/exports).
## You choose what each connection can reach
When you authorize a connection, you pick its organizations, campaigns, and permissions. A connection can never do more than your own role allows. See [Authorize a connection](/mcp/authorize-a-connection).
Give each connection the least access it needs:
* Pick specific campaigns instead of all campaigns.
* Grant **Read** only, if you just want the assistant to review or explain.
* Leave out **Organization** unless the assistant needs to create new campaigns.
* Leave out **Segments and exports** unless you plan to work on audiences or exports.
## Sign-in and tokens
* You sign in on a Claimr page, not inside the assistant. Your password is never shared with the assistant.
* The connection uses OAuth 2.1 with PKCE. The assistant receives a token tied to your account and to the access you chose.
* Tokens refresh automatically while in use. Each refresh replaces the old token, so a stolen refresh token stops working as soon as the real assistant refreshes.
* A connection unused for 90 days expires.
## Organization oversight
Organization admins see every connection that reaches the organization, including who made it and when it was last used, and can narrow or revoke it. See [Manage connections](/mcp/manage-connections).
## Confirm before changes
Most AI assistants show each tool call and ask for approval before changing data. Review changes before you approve them, especially:
* Deleting groups, quests, tasks, forms, or images.
* Running a raffle draw.
* Starting or ending a tournament.
These actions affect participants and some can't be undone.
## Report a problem
If you see a connection you don't recognize, revoke it right away from your profile or the organization's **API** page, then contact [support@claimr.io](mailto:support@claimr.io).
# Campaign tools
Source: https://docs.claimr.io/mcp/tools/campaigns
Claimr MCP tools for organizations, campaigns, campaign settings, descriptions, images, and feature requests.
These tools let the assistant find your organizations and campaigns, create and update campaigns, and change campaign-wide settings. The **Access** column shows the permission area and level each tool needs. See [Permission areas](/mcp/authorize-a-connection#permission-areas).
## Context and organizations
| Tool | What it does | Access |
| - | - | - |
| `claimr_create_context` | Starts a context that remembers the organization, campaign, group, quest, and task you're working on. | None |
| `claimr_get_organizations` | Lists the organizations you belong to. | None |
## Campaigns
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_campaigns` | Lists the campaigns of an organization. Given a campaign slug or ID, returns that campaign's full details. | Campaigns: read |
| `claimr_create_campaign` | Creates a campaign by name, with an optional image. | Organization: write |
| `claimr_update_campaign` | Changes a campaign's name, image, XP name, and XP icon. | Campaigns: write |
Creating a campaign is an organization-level action, so it needs **Organization** write access, not **Campaigns**.
## Campaign settings
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_leaderboard_settings` | Shows whether the referral XP and referral count leaderboards are on, whether the leaderboard is frozen, and which tasks a participant must complete to appear on it. | Campaigns: read |
| `claimr_set_leaderboard_settings` | Changes the leaderboard settings. | Campaigns: write |
| `claimr_get_referral_settings` | Shows how much XP a referrer earns and what a referred participant must do before the referral counts. | Campaigns: read |
| `claimr_set_referral_settings` | Changes the referral rewards. Pay the referrer a share of the referred participant's XP, or a flat amount per referral. | Campaigns: write |
| `claimr_get_campaign_limits` | Shows the campaign's schedule, the maximum number of participants, and the XP participants start with. | Campaigns: read |
| `claimr_set_campaign_limits` | Changes the schedule and entry limits. | Campaigns: write |
| `claimr_get_login_requirements` | Shows which social logins participants need, whether they're mandatory, whether a Claimr account is needed to view the campaign, and which chains wallets can connect on. | Campaigns: read |
| `claimr_set_login_requirements` | Changes the login and network requirements. | Campaigns: write |
Related pages: [General campaign settings](/campaigns/general-campaign-settings), [Referral settings](/campaigns/referral-settings), [Leaderboard](/campaigns/leaderboard), [Campaign sign-in options](/campaigns/campaign-sign-in-options).
## Descriptions
Descriptions are the long, formatted texts shown on a campaign, its intro and referral pages, groups, quests, tasks, tournaments, and completion pop-ups.
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_description` | Reads a description as plain text. | Read access to the area of the item |
| `claimr_set_description` | Writes a description. Writing a pop-up description also turns the pop-up on. | Write access to the area of the item |
| `claimr_clear_description` | Removes a description, or only one translation of it. Clearing a pop-up description also turns the pop-up off. | Write access to the area of the item |
The area depends on what the description belongs to: **Campaigns** for campaigns and groups, **Quests** for quests and tasks, **Tournaments** for tournaments.
Descriptions are read and written as plain text. Writing a new description replaces any formatting, images, or links added in the panel.
## Images
| Tool | What it does | Access |
| - | - | - |
| `claimr_update_image` | Replaces an uploaded image in place, for example to shrink a large quest image. When the format stays the same, the image URL doesn't change and every item using it updates. | Campaigns: write |
| `claimr_delete` (kind `image`) | Permanently deletes an uploaded image. Refuses while a quest, task, tier, team, item, pre-quest, or the campaign still uses it. | Campaigns: write |
## Feature requests
When you ask for something Claimr can't do yet, the assistant can pass it on to the Claimr team as a feature request. It shows you the request and asks before sending it.
| Tool | What it does | Access |
| - | - | - |
| `claimr_submit_feature_request` | Sends a feature request to the Claimr team, with an optional use case, priority, and related campaign. | None |
| `claimr_get_feature_requests` | Lists your organization's feature requests with their status (new, planned, in progress, done, or declined) and any note from the Claimr team. | None |
Any member of the organization can submit and list feature requests.
# Customization tools
Source: https://docs.claimr.io/mcp/tools/customization
Claimr MCP tools for widget options, layout, custom CSS, and translations.
These tools change how the campaign widget looks and reads. They use the **Customization** permission area.
## Overview
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_customizations` | Summarizes how a campaign is customized: whether it has custom CSS, which layout regions it overrides, how many widget options it changed, and which languages it has translations for. | Customization: read |
Start with "Summarize how this campaign is customized" to see what's already changed before editing.
## Widget options
Widget options are the switches and pickers from the panel's widget settings, such as showing the leaderboard or wrapping quest cards.
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_widget_options` | Lists the widget options, their current values, and the values each one takes. | Customization: read |
| `claimr_set_widget_options` | Changes widget options. Options you don't mention stay as they are. | Customization: write |
Related pages: [Widget configurations](/widget/widget-configurations), [Widget themes](/widget/widget-themes).
## Layout
The layout controls the structure of widget regions: the campaign page, the quest card, the quest pop-up, the quest group, the user progress bar, and the leaderboard columns.
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_layout_blocks` | Lists the widget's layout regions and the blocks each region can hold. Reference only, it doesn't read a campaign. | Customization: read |
| `claimr_get_layout` | Shows which regions a campaign overrides, or the blocks of one region. | Customization: read |
| `claimr_set_layout` | Changes one region, or the whole layout. Widget options stored with the layout are kept. | Customization: write |
## Custom CSS
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_css` | Reads the campaign's custom stylesheet, in slices, or searches it. | Customization: read |
| `claimr_set_css` | Adds rules to the stylesheet, edits one passage, or replaces it. | Customization: write |
Custom CSS is applied on top of the widget theme.
## Translations
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_localization` | Reads a campaign's widget texts in one language: the ones it changed and, on request, the defaults it could change. | Customization: read |
| `claimr_set_localization` | Changes widget texts in one language. Texts you don't mention keep the default. Turns the language on for the campaign if needed. | Customization: write |
| `claimr_set_locales` | Sets which languages a campaign offers and which one it opens in. | Customization: write |
English is the fallback for every other language. Changing an English text changes it everywhere a translation doesn't override it.
Campaign, quest, and task descriptions are translated with the [description tools](/mcp/tools/campaigns#descriptions), not these.
Related page: [Localization](/localization).
# Export tools
Source: https://docs.claimr.io/mcp/tools/exports
Claimr MCP tools for setting up and starting CSV exports of participant data, which you then download in the Claimr admin panel.
The assistant can set up and start a CSV export of your campaign's participant data, for example the wallets of everyone who took part in a quest. It never receives the file: when the export is ready, you download it in the Claimr admin panel. Exports use the **Segments and exports** permission area.
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_export_fields` | Lists what an export can contain: datasets, the conditions that choose participants with their operators and accepted values, activity filters, and columns. For one condition, it lists all accepted values, such as the country list. | Segments and exports: read |
| `claimr_preview_export` | Counts how many participants and rows an export would include, without creating it. | Segments and exports: read |
| `claimr_create_export` | Starts an export and returns a link to it in the admin panel. | Segments and exports: read |
| `claimr_get_export_status` | Shows an export's progress and the link to it in the admin panel. | Segments and exports: read |
## How an export works
Describe what you need, for example "Export the wallets of everyone who took part in the 'Go on-chain' quest but hasn't finished it."
The assistant looks up the available conditions and columns, checks how many participants match, and starts the export.
The assistant gives you a link to the export in the admin panel. Open it while signed in to Claimr. The **Export** drawer opens on that export.
If the export is ready, click **Download**. If it's still running, the file downloads as soon as it's ready.
Ask the assistant to preview the export first. The preview tells you how many participants and rows the file will have, so you can adjust the conditions before you start it.
## What an export can contain
Each export has a dataset, which decides what one row of the file is:
| Dataset | One row per |
| - | - |
| **Participants** | participant |
| **Activity** | task, quest, reward, or withdrawal |
| **Accounts** | connected account or wallet |
| **Referrals** | referrer and referral pair |
Conditions choose which participants are included. You can combine them so that participants must match **all** of them or **any** of them:
* Completed tasks, completed quests, or quests they took part in. A participant took part in a quest if they did any of its tasks, even without finishing it.
* Connected platforms, status (active or disqualified), team, and country.
* Join date and last activity.
* XP, custom points, and leaderboard rank.
* Number of referrals, and the referral link they joined through.
* Wallet score, social score, and wallet balance.
* UTM source, campaign, and medium.
An **Activity** export can also be limited to certain row types, tasks, quests, statuses, or dates. You choose the columns, or the assistant uses the default columns for the dataset.
Exports use the published version of your campaign. Tasks and quests that aren't published yet can't be used in conditions.
## What the assistant sees
The assistant only receives counts, column names, and a summary of the conditions. It never receives the file, any of its rows, participant names, wallets, or a download link.
For the same reason, the assistant can't export a list of specific participants, such as wallets you paste into the chat. To export a list like that, open the **Export** drawer in the admin panel and paste the list there.
Only a team member signed in to the admin panel, whose role can view users, can download an export. In the panel's export list, exports started by an assistant show the assistant's name in the **By** column.
# Form tools
Source: https://docs.claimr.io/mcp/tools/forms
Claimr MCP tools for building forms and quizzes page by page and question by question.
A form is a set of pages, and each page holds blocks: questions or pieces of content. Participants fill in a form through a form task. Forms use the **Rewards** permission area.
## Forms
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_forms` | Lists the forms of a campaign. Given a form name or ID, returns that form with all its pages and blocks. | Rewards: read |
| `claimr_create_form` | Creates an empty form. | Rewards: write |
| `claimr_update_form` | Changes a form's name or settings. | Rewards: write |
| `claimr_delete` (kind `form`) | Deletes a form. Refuses while a task still uses it. | Rewards: write |
## Pages
| Tool | What it does | Access |
| - | - | - |
| `claimr_add_form_page` | Adds a page, at the end or at a given position. A form needs a page before it can hold questions. | Rewards: write |
| `claimr_update_form_page` | Changes a page. | Rewards: write |
| `claimr_delete` (kind `form_page`) | Removes a page and every block on it. | Rewards: write |
## Blocks
| Tool | What it does | Access |
| - | - | - |
| `claimr_add_form_block` | Adds a block to a page. | Rewards: write |
| `claimr_update_form_block` | Changes a block. Answer options kept with the same text keep their ID, so responses already collected still line up. | Rewards: write |
| `claimr_delete` (kind `form_block`) | Removes a block. | Rewards: write |
Block types:
* **text**: a short answer.
* **long\_text**: a long answer.
* **select**: a choice from a list of options.
* **quiz**: a scored choice, with an explanation for each answer.
* **desc**: formatted text between questions.
* **youtube\_video**: an embedded YouTube video.
## Make the form reachable
Participants only reach a form through a task. After the form is built, ask the assistant to create a form task that points at it, for example:
> Create a quiz form with five questions about our product, then add a form task for it to the Learn quest.
## Responses
The assistant can't read form responses, because they're participants' own answers. Open the form in the admin panel to see responses. See [Security and privacy](/mcp/security-and-privacy).
Related pages: [Forms](/forms/overview), [Quizzes](/forms/quizzes), [Form tasks](/tasks/form-tasks).
# Quest and task tools
Source: https://docs.claimr.io/mcp/tools/quests-and-tasks
Claimr MCP tools for groups, quests, tasks, task types, and pre-quests.
These tools build the structure of a campaign: groups hold quests, and quests hold tasks. See [Claimr core components](/claimr-core-components) for how they fit together.
## Groups
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_groups` | Lists the groups of a campaign. | Campaigns: read |
| `claimr_create_group` | Creates a group. A campaign needs at least one group before quests are shown. | Campaigns: write |
| `claimr_update_group` | Changes a group's settings. | Campaigns: write |
| `claimr_delete` (kind `group`) | Removes a group. Its quests stay in the campaign, unattached. | Campaigns: write |
Related pages: [Groups](/groups/overview), [Group settings](/groups/group-settings).
## Quests
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_quests` | Lists the quests of a campaign, or of one group. Given a quest slug or ID, returns that quest with its tasks. | Quests: read |
| `claimr_create_quest` | Creates a quest and places it in a group. Without a group, the quest is created but participants won't see it. | Quests: write |
| `claimr_update_quest` | Changes a quest's settings. | Quests: write |
| `claimr_move_quest` | Moves a quest to another group, or to a new position in its group. | Quests: write |
| `claimr_reorder_quest_tasks` | Sets which tasks a quest holds and in what order. Tasks left out are detached but stay in the campaign. | Quests: write |
| `claimr_delete` (kind `quest`) | Deletes a quest. Its tasks stay in the campaign. | Quests: write |
Related pages: [Quests](/quests/overview), [Quest settings](/quests/quest-settings).
## Task types
Claimr supports more than 200 task types across X, Discord, Telegram, Reddit, TikTok, YouTube, LinkedIn, Instagram, Facebook, Web3 wallets and chains, exchanges, forms, API checks, and more. The assistant uses these tools to find the right type and the fields it needs.
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_task_types` | Browses task types. Filter by platform or keyword, for example "twitter", "discord", "web3", or "quiz". Given a type, shows the fields it takes, which are optional, and an example. | None |
Ask the assistant "Which task types can reward Telegram activity?" to explore what's available before you plan a quest.
## Tasks
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_tasks` | Lists the tasks of a campaign, or of one quest. Given a task name or ID, returns that task with its full settings. | Quests: read |
| `claimr_create_task` | Creates a task and attaches it to a quest. Returns any issues Claimr found in the task's settings. | Quests: write |
| `claimr_update_task` | Changes a task's settings. Returns any issues Claimr found. | Quests: write |
| `claimr_delete` (kind `task`) | Deletes a task and detaches it from every quest. | Quests: write |
Related pages: [Tasks](/tasks/overview), [Task settings](/tasks/task-settings).
## Pre-quests
Pre-quests are claimed on the pre-launch page, before the campaign opens. They bank XP and points for participants.
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_pre_quests` | Lists the pre-quests of a campaign, active ones first. Given a pre-quest name or ID, returns that one. | Quests: read |
| `claimr_create_pre_quest` | Creates a pre-quest and shows it on the pre-launch page. | Quests: write |
| `claimr_update_pre_quest` | Changes a pre-quest. | Quests: write |
| `claimr_set_active_pre_quests` | Sets which pre-quests the pre-launch page shows, and in what order. The rest move to the pool. | Quests: write |
| `claimr_delete` (kind `pre_quest`) | Deletes a pre-quest. XP and points already claimed stay with participants. | Quests: write |
# Raffle and tournament tools
Source: https://docs.claimr.io/mcp/tools/raffles-and-tournaments
Claimr MCP tools for creating raffles and drawing winners, and for running tournaments.
Raffles and tournaments include actions that can't be undone, such as drawing raffle winners or ending a tournament. Your AI assistant asks you to confirm these. Read the confirmation carefully.
## Raffles
A raffle draws winners from the participants who meet its requirements. Raffles use the **Rewards** permission area. A raffle tied to a tournament also needs **Tournaments** access.
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_raffles` | Lists the raffles of a campaign. | Rewards: read |
| `claimr_create_raffle` | Creates a raffle. Nobody is entered until the draw runs. | Rewards: write |
| `claimr_update_raffle` | Changes a raffle. Requirements only matter until the draw runs. | Rewards: write |
| `claimr_close_raffle` | Runs the draw: enters every participant who meets the requirements, ranks them, and closes the raffle. | Rewards: write |
| `claimr_set_raffle_candidate` | Disqualifies a drawn candidate, or puts them back in. Ranks around them don't move. | Rewards: write |
| `claimr_complete_raffle` | Marks a drawn raffle as completed once its winners are settled. The campaign must have been published at least once. | Rewards: write |
| `claimr_delete` (kind `raffle`) | Deletes a raffle and its draw. | Rewards: write |
Raffles rank candidates in one of three ways:
* **Top**: ranks candidates by XP.
* **Random**: ignores XP.
* **Normalized**: random, weighted by XP, so more XP means better odds.
Drawing a raffle decides the winners. It can't be undone or run again.
Related page: [Raffles](/extra/raffles).
## Tournaments
A tournament scores participants on what they earn between its start and end. A campaign can run one tournament at a time.
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_tournaments` | Lists the tournaments of a campaign. Given a tournament name or ID, returns that one. | Tournaments: read |
| `claimr_create_tournament` | Creates a tournament. Leave quests and tasks empty to score the whole campaign, or pick some to score only those. | Tournaments: write |
| `claimr_update_tournament` | Changes a tournament. Scores already earned aren't rewritten. | Tournaments: write |
| `claimr_start_tournament` | Starts a tournament and records every participant's starting point. A tournament can only be started once. | Tournaments: write |
| `claimr_end_tournament` | Ends a tournament and freezes the standings. | Tournaments: write |
| `claimr_delete` (kind `tournament`) | Deletes a tournament. A running tournament has to be ended first. | Tournaments: write |
Ending a tournament can't be undone.
Related page: [Tournaments](/extra/tournaments).
## Winners and standings
The assistant can't list raffle candidates, raffle winners, or tournament standings, because those include participants' personal data. Open the raffle or tournament in the admin panel to see them. See [Security and privacy](/mcp/security-and-privacy).
# Reward tools
Source: https://docs.claimr.io/mcp/tools/rewards
Claimr MCP tools for tiers, prize pools, items, daily check-ins, and teams.
These tools set up how participants progress and what they earn. All of them use the **Rewards** permission area.
## Tiers
Tiers are XP levels participants climb through. Each tier's XP range is the XP earned inside that tier alone, so tiers stack: three tiers with a range of 100 XP unlock at 100, 200, and 300 XP.
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_tiers` | Lists the tiers of a campaign, in order. | Rewards: read |
| `claimr_create_tier` | Adds a tier, at the end or at a given position. | Rewards: write |
| `claimr_update_tier` | Changes a tier. Changing its XP range shifts the required XP of every tier after it. | Rewards: write |
| `claimr_reorder_tiers` | Sets the order of the tiers. | Rewards: write |
| `claimr_delete` (kind `tier`) | Removes a tier. The tiers after it move up. | Rewards: write |
Related page: [Ranks](/extra/ranks).
## Prize pools
A prize pool pays out leaderboard positions in brackets, for example places 1 to 3 get one prize and places 4 to 10 get another.
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_prize_pools` | Lists the prize pools of a campaign. | Rewards: read |
| `claimr_create_prize_pool` | Adds a prize pool with its brackets. | Rewards: write |
| `claimr_update_prize_pool` | Changes a prize pool. Passing brackets replaces the whole payout table. | Rewards: write |
| `claimr_delete` (kind `prize_pool`) | Removes a prize pool. | Rewards: write |
## Items
Items are consumables participants spend on tasks, for example a spin of a fortune wheel. Each participant has their own balance.
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_items` | Lists the items of a campaign. | Rewards: read |
| `claimr_create_item` | Adds an item. A simple item gives a fixed number of uses; a recurrent item refills every period. The item ID can't be changed later. | Rewards: write |
| `claimr_update_item` | Changes an item. | Rewards: write |
| `claimr_delete` (kind `item`) | Removes an item. Tasks that use it stop working. | Rewards: write |
## Daily check-ins
Each day of the check-in streak pays XP or rewards. The list repeats once a participant's streak outgrows it.
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_daily_rewards` | Lists the check-in days, in order. | Rewards: read |
| `claimr_create_daily_reward` | Adds a day, at the end or at a given position. | Rewards: write |
| `claimr_update_daily_reward` | Changes a day. | Rewards: write |
| `claimr_reorder_daily_rewards` | Sets the order of the days. | Rewards: write |
| `claimr_delete` (kind `daily_reward`) | Removes a day. The streak gets one day shorter before it repeats. | Rewards: write |
Related page: [Daily check-ins](/extra/daily-check-ins).
## Teams
Participants pick or are assigned a team, and the leaderboard can be split by team.
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_teams` | Lists the teams of a campaign. | Rewards: read |
| `claimr_create_team` | Adds a team. | Rewards: write |
| `claimr_update_team` | Changes a team. | Rewards: write |
| `claimr_delete` (kind `team`) | Removes a team. Participants on it show an unknown team until they're moved. | Rewards: write |
# Segment tools
Source: https://docs.claimr.io/mcp/tools/segments
Claimr MCP tools for building saved audience filters that tag participants by who they are and what they did.
A segment is a saved audience filter. Participants who match it get tagged with it, so you can slice a campaign by location, XP, completed tasks, and more. Segments use the **Segments and exports** permission area.
| Tool | What it does | Access |
| - | - | - |
| `claimr_get_segment_fields` | Lists the fields a segment can filter on, the operators each field allows, and the values each operator expects. For one field, it lists the accepted values, such as the country list for location. | Segments and exports: read |
| `claimr_get_segments` | Lists the segments of a campaign. Given a segment name or ID, returns that segment with all its conditions. | Segments and exports: read |
| `claimr_create_segment` | Creates a segment. | Segments and exports: write |
| `claimr_update_segment` | Changes a segment. Passing conditions replaces all of them. | Segments and exports: write |
| `claimr_delete` (kind `segment`) | Deletes a segment. | Segments and exports: write |
## How conditions combine
Conditions are grouped. Each group combines its own conditions with **all** or **any**, and the segment combines its groups the same way. For example, "from Germany or France, and more than 100 XP" is two groups:
1. Location is Germany **or** location is France.
2. XP is more than 100.
The segment matches when **all** groups match.
## When participants are tagged
Participants are tagged on their next recalculation, not right away. After you delete a segment, participants keep its tag until their next recalculation.
Segment tools work with filters, not people. The assistant can't list the participants in a segment.
# Troubleshooting
Source: https://docs.claimr.io/mcp/troubleshooting
Fix common Claimr MCP errors: sign-in problems, missing organizations or campaigns, and access errors.
## "MCP access is not enabled for this organization yet"
Your organization is still on the MCP waitlist. Contact [support@claimr.io](mailto:support@claimr.io) to request access. Once it's turned on, connections authorized for **All organizations** start working for it right away. For a connection limited to specific organizations, add the organization from your profile. See [Manage connections](/mcp/manage-connections).
## The consent screen shows no organizations
* **"You don't belong to any organization yet."** Ask an organization admin to invite you to their team.
* **"None of your organizations have MCP access yet."** Your organizations are on the waitlist. Contact support to request access.
## A campaign or organization is missing
The assistant only sees what the connection was authorized for. If a campaign is missing:
1. Check that your role can open the campaign in the admin panel.
2. Open **My MCP connections** in your profile and check the connection's organizations and campaigns. Add the missing ones. See [Manage connections](/mcp/manage-connections).
A connection authorized for **Specific campaigns** doesn't pick up campaigns created later, including campaigns the assistant creates itself. Add new campaigns to the connection from your profile. Connections authorized for **All campaigns** include new campaigns automatically.
## "Access denied"
Your team role doesn't allow this action in this organization or campaign. Ask an organization admin to change your role. See [Team roles and management](/team-roles-and-management).
## "This MCP connection is not authorized for this campaign"
The campaign isn't one of the campaigns chosen for this connection. Edit the connection from your profile and add the campaign.
## "This MCP connection has no write access to Quests"
The connection has **Limited access** and doesn't include this area or level. The message names the area, for example **Quests**, **Rewards**, or **Customization**. Edit the connection from your profile and turn on the permission you need.
If an organization admin removed the permission from the organization's **API** page, it was removed on purpose. Check with them before adding it back.
## The assistant asks you to sign in again
This happens when:
* The connection was revoked from your profile or by an organization admin.
* The connection wasn't used for 90 days.
* Your assistant lost its saved sign-in.
Reconnect and authorize again. See [Authorize a connection](/mcp/authorize-a-connection).
## "This authorization request expired"
The sign-in page stayed open for more than 10 minutes between signing in and clicking **Authorize**. Start the connection again from your assistant.
## Sign-in fails
* Use the same email and password, or the same Google account, you use for the Claimr admin panel.
* If you forgot your password, reset it first. See [Reset password](/getting-started/reset-password).
## The assistant says a task has issues
Claimr saved the task but couldn't verify part of its settings, for example an X account that doesn't exist. Ask the assistant to show the issues, fix the settings, and update the task.
## Still stuck
Email [support@claimr.io](mailto:support@claimr.io) with the name of your AI assistant, the organization and campaign, and the exact error message.
# Completion pop-up
Source: https://docs.claimr.io/pop-ups/completion-pop-up
Enable and design a completion pop-up for a group, quest, or task, and preview how it appears after a user succeeds.
A **Completion pop-up** is a custom message that appears to users after they successfully complete a task or a full quest within your Claimr campaign. It's an excellent way to thank users, provide final instructions, or direct them to the next steps. You can include text, images, and even create multiple screens for a detailed post-completion experience.
## Why use completion pop-ups?
Implementing a completion pop-up can significantly enhance the user experience:
* **Acknowledge completion**: Provide immediate confirmation and appreciation for completing a task or quest.
* **Provide next steps**: Guide users to subsequent actions, such as claiming rewards or starting a new quest.
* **Create a memorable experience**: Offer a branded and tailored message at the point of success.
## Configure completion pop-up
You can configure a completion pop-up directly within the settings of a **Group of quests**, a specific **Quest**, or an individual **Task**.
* Go to your **Groups of quests** section and select the group, OR
* Go to your **Quests** section, click on the quest, and then click on the specific task.
Once in the desired Group, Quest, or Task settings, locate the section dedicated to **Completion pop-up**.
Turn on the toggle (it should turn green).
Click **+ Create**. This will open a text editor where you can type your message and format it. You can add description tags to your pop-up. For more details on descriptions and tags, visit the [Descriptions: creation, usage, tags](/descriptions-creation-usage-tags) article.
After you have designed your pop-up content, remember to click **Save changes** and **Update** settings to apply your changes.
## Preview your pop-up
It's important to see how your completion pop-up will look to users:
* Use your campaign's **Preview mode**, accessible from the main campaign settings page or dashboard.
* Complete the associated task or quest in preview mode. When you successfully complete it, you should see your custom pop-up appear.
# Intro pop-up
Source: https://docs.claimr.io/pop-ups/into-pop-up
Build a custom form with Claimr's Forms feature, assign it as your campaign's intro pop-up, and preview the onboarding flow.
An **Intro pop-up** is a custom message or sequence of messages that appears to users when they first enter your Claimr campaign. It's built using Claimr's **Forms** feature and is an excellent way to welcome users, provide essential information, or set the stage for your campaign before they access the main quests and tasks. You can include text, images, and create multiple pages for a more detailed onboarding experience.
## Why use intro pop-ups?
Implementing an intro pop-up can significantly enhance the user experience:
* **Onboard new users**: Smoothly introduce users to the campaign's purpose, theme, or how to participate.
* **Guide users**: Provide initial instructions or context before users dive into tasks. Clearly communicate crucial rules, guidelines, or prerequisites upfront.
* **Create a customized start**: Offer a branded and tailored welcome experience.
## Create and implement an intro pop-up
Setting up an intro pop-up involves two main stages: creating a custom form and assigning it to your campaign.
### 1. Create the custom form for your pop-up
First, you need to design the content of your pop-up using the **Forms** feature.
Go to the **Forms** section in your Claimr dashboard.
Click **Create form**. A new form preset will open, providing a starting point for your design.
Write a caption and click **+ Page** to begin designing your form. This will add your first page.
To include a welcome message, instructions, images, or any other introductory content, click **+ Block** and select the **Rich Text** block type.
Click **Add block** for the Rich Text type. This will immediately open the **Block settings** window, which functions as a text editor. Here, you can type your welcome message and use the toolbar to format your text. For more details on descriptions and tags, visit the [Descriptions: creation, usage, tags](/descriptions-creation-usage-tags) article.
For pop-ups that require multiple screens, you can add more pages to your form by clicking **+ Page** again. Users will then move through these screens using a navigation button.
The text on the button used to move between pages (e.g., "Next," "Continue," "Got it!") is configured manually when you set up the form's pagination within the Form builder.
Once your form content is ready, give it a memorable name and save it.
### 2. Assign the form as an intro pop-up
After your custom form is created and saved:
Navigate to the specific **Campaign** where you want to use this pop-up.
Go to the campaign **Settings**.
Select the **Campaign flow** section from the settings menu.
Click the dropdown menu for **Intro Pop-up** and select the custom form you created above.
Click **Update** to save your changes.
### 3. Preview your intro pop-up
It's important to see how your campaign will look to users:
1. Use your campaign's **Preview mode**, accessible from the main campaign settings page or dashboard.
2. When you start the campaign in preview, you should see your custom form appear as a pop-up immediately over the main campaign interface.
3. Click through all the pages of your pop-up (if you created a multi-page form) to ensure the content and navigation buttons work as expected.
4. After closing or completing the intro pop-up, you should then see the main content of your campaign.
# Pop-ups
Source: https://docs.claimr.io/pop-ups/overview
See what intro and completion pop-ups can do to onboard, guide, and celebrate progress with your campaign participants.
Pop-ups are dynamic, customizable messages that appear over your Claimr campaign's main content at specific moments. They are a powerful tool for engaging with users, delivering key information, and guiding their experience within your campaign.
## What types of pop-ups does Claimr offer?
Claimr provides two main types of pop-ups, each designed for a different stage of the user journey:
* **Intro pop-up**: This pop-up appears to users when they first enter your Claimr campaign. It serves as a welcome screen or an initial information delivery method.
* **Completion pop-up**: This pop-up displays to users after they successfully complete a task or an entire quest within your campaign. It acts as a confirmation or a next-step guide.
## Why use pop-ups in your campaign?
Implementing pop-ups can significantly enhance your campaign's effectiveness and user experience:
* **Onboard and guide users**: Pop-ups allow you to smoothly introduce new users to your campaign's purpose, theme, or how to participate. They can provide initial instructions, crucial rules, guidelines, or prerequisites before users dive into tasks.
* **Enhance engagement**: By delivering timely and relevant messages, pop-ups can increase user interaction and ensure they receive critical information at important points in their journey.
* **Improve user experience**: Pop-ups create a customized and tailored experience, from welcoming users at the start to acknowledging their achievements at the end.
* **Provide feedback and next steps**: Completion pop-ups are particularly useful for confirming successful actions, thanking users, providing final instructions, or directing them to subsequent activities like claiming rewards.
Welcome users and set the stage before they access your campaign's quests and tasks.
Celebrate a completed task or quest and guide users to their next step.
# Create new quest
Source: https://docs.claimr.io/quests/create-new-quest
Build engaging quest journeys that guide your users through rewarding experiences in your campaign.
## Before you start
Make sure you have:
* An active campaign in Claimr
* A quest group created (or you'll create one during this process)
* A clear idea of what you want users to accomplish in this quest
## Create your quest
From your Claimr main panel, click **Campaigns** in the header menu. Choose the campaign where you want to add the quest and click on it.
In the campaign header menu, click the **Quests** tab. You'll see all quest groups you've created for this campaign.
If you don't have an appropriate group for your quest yet:
1. Click the **Create Group** button on the right
2. Give your group a descriptive name (e.g., "Social Tasks" or "Onboarding Journey")
3. Click **Create**
Your new group will appear in the quest groups list.
Click **+ Create quest** within your chosen quest group. A pop-up window will appear with the quest creation form.
Configure the essential settings for your new quest:
* **Quest name**: Enter a catchy, memorable name that clearly describes what users will do. Examples: "Social starter", "Daily login bonus", "Invite your friends"
* **Completion Points**: Set the base points users earn for completing this quest. Use the quick-select buttons (1, 2, 5, 10, 15, 25, 50, 100) or type a custom amount. Consider the effort required and your overall reward structure.
* **Points multiplier (%)**: Add a percentage bonus to boost the reward. Use quick-select buttons (1%, 2%, 5%, 10%) or enter a custom percentage. Example: Setting 5% on 100 points gives users 105 points total.
* **Quest short description**: Write a brief summary of what this quest involves. This appears on the quest card in your campaign. Tell users what they'll do and what they'll gain. Keep it clear and engaging.
* **Quest image**: Upload a visual that represents your quest. Click **Upload** to choose an image from your computer. Use eye-catching visuals that match your quest theme.
Click the **Create quest** button at the bottom of the pop-up. You'll be redirected to the quest settings page.
Start with simple quests to test your reward structure before building complex multi-task journeys. You can always add more depth later.
## Next steps
Configure your quest in detail:
1. **Add tasks** - Create the specific actions users will complete
2. **Configure Quest Settings** - Set up rules, dependencies, and advanced options. See [Quest settings](/quests/quest-settings).
3. **Set up rewards** - Define what users earn beyond base points
# Quests
Source: https://docs.claimr.io/quests/overview
Start building Claimr quests today and watch your community thrive - see what quests can do and where to start.
Quests transform your marketing goals into interactive journeys. Guide your audience through engaging experiences that make them want to explore your brand, products, and services.
## What you can do with Claimr quests
**Turn goals into games**: Convert your marketing objectives into exciting challenges. Make every interaction fun and rewarding, keeping users engaged from start to finish.
**Guide users to take action**: Direct participants through specific activities aligned with your goals - whether you're building brand awareness, driving traffic, or boosting social engagement.
**Understand your audience**: Track how users move through your quests and what they respond to. Gain insights into their preferences, interests, and behavior patterns.
**Reward participation**: Offer compelling incentives that match your audience's interests: NFTs, tokens, exclusive access, discounts, or custom rewards that keep users coming back.
**Build community**: Create shared experiences that bring your audience together. Foster a sense of belonging as users complete quests alongside others who share their interests.
Build a quest journey from scratch.
Configure rewards, rules, and display options for a quest.
# Quest settings
Source: https://docs.claimr.io/quests/quest-settings
Configure every aspect of your quest to create engaging experiences that align with your campaign goals.
## Before you start
Make sure you have:
* A quest already created in your campaign
* A clear understanding of what you want users to accomplish
* Your reward structure planned out
## Access quest settings
In your Claimr panel, click **Quests** in the campaign header menu. You'll see all quest groups you've created.
Find the quest you want to configure and click on it. The quest settings page will open.
## Quest settings overview
The settings page is organized into collapsible sections. **General settings** is expanded by default, while other sections start collapsed. Click the **+** icon next to any section to expand it and configure those settings.
![Quest settings overview]()
## General settings
This section contains the core identity and presentation elements of your quest.
![Quest general settings]()
**Quest ID**: Your quest's unique identifier. Click the copy icon to copy it to your clipboard. Use this ID for API integrations or technical tracking.
**Name**: The public-facing title of your quest. Click the name to edit it directly. Make it catchy and memorable. Keep it concise (2-5 words works best).
**Quest image**: The main visual for your quest card. Choose images that represent your quest's theme.
* Click the image thumbnail to edit or replace it
* Click the trash icon to remove the current image
**Short description**: A brief summary that appears on the quest card.
* Click the text to edit it directly
* Explain what users will do and what they'll earn
* Keep it under 2 sentences
* Click the trash icon to remove it
### Description
Add a full description that explains your quest's goals, rewards, and what users should expect.
1. Click **+ Description**
2. The text editor opens with formatting options
3. Write your description using the formatting tools
4. Add links, images, or styled text as needed
**Quest description tags**
Personalize your quest descriptions and dynamically display information relevant to each user, making the quest experience more engaging and tailored.
1. **Insert the tag**: Simply type the tag directly into the text editor when creating or editing the quest description.
2. **Save your changes**: Once you've added the tags, save your changes to the quest description.
3. **View the result**: When a user views the quest, the tags will be dynamically replaced with the corresponding information.
To find more information about tags, visit [Descriptions: creation, usage, tags](/descriptions-creation-usage-tags).
**Animation**
Customize the visual presentation of your description using the Animation type setting. Select **typing** from the available animation types. When selected, the description displays with a typing animation in the widget.
**Collapse description**
Control the initial visibility of your quest description. Use this to keep your quest page clean and uncluttered while still giving interested users the option to learn more.
* **Toggle off**: The full description is visible to anyone viewing your quest.
* **Toggle on**: The description is condensed, showing only a brief summary. Participants need to click **Show more** to expand and read the full description.
### Background image
Use **Background image** to add a backdrop for your quest card.
1. Click **+ Background image**
2. Select **Upload** to choose an image from your computer
3. The image appears behind your quest content, adding visual depth
## Rewards
Define the points, multipliers, and special rewards users earn for completing this quest.
![Quest rewards section]()
**Points**: Enter the base number of points users earn for completing this quest.
* Consider the effort required and your campaign's point economy
* The field shows the current value
**Points multiplier (%)**: Enter a percentage to add a bonus to the base points.
* Example: 100 points with 5% multiplier = 105 total points
* Use this to highlight important quests or run promotions
* Click the trash icon to remove the multiplier
**Rewards**: Click **+ Create** to open the reward creation dialog and define special rewards beyond points.
Balance your reward structure to ensure it's both motivating and sustainable for your campaign. Too few points might not incentivize participation, while too many could deplete your reward pool quickly.
### Create a reward
![Create a reward form]()
When you click **+ Create**, a form opens with these sections:
**General**
* **Short name**: Enter an internal name for your reference (e.g., "Reward name").
* **Description**: Explain what this reward is and why users want it.
* **Image**: Click **Upload image** to add a visual representation of your reward.
**Type**
Select the reward type by clicking one of these buttons:
* **Web3 Token** - Cryptocurrency or token rewards
* **Discord Role** - Grant Discord server roles
* **Resource** - Custom resource or asset
* **Virtual Asset** - In-game or virtual items
* **Invite Codes** - Access codes users can share
* **Gift Codes** - Redeemable gift codes
* **Scripted** - Custom scripted rewards
* **Points** - Additional point rewards
* **Badge** - Achievement badges
* **Puzzle Piece** - Collectible puzzle elements
**General configuration**
Configuration options vary depending on the reward type you select. For detailed information about each reward type and its specific settings, visit [Rewards](/rewards/overview).
## Quest card details
Customize how your quest appears in the campaign widget.
![Quest card details section]()
**Labels**: Add tags that help categorize or filter this quest.
* Click **Select tag** to choose from existing tags
* Click the **x** to remove a tag
**Quest card details**: Select the display style for your quest card from the dropdown menu: daily or default styles. This affects the visual presentation in your widget.
**Progressbar UI**: Select how progress displays from the dropdown menu: default or segment.
### Button text customization
![Button text customization]()
Customize the text that appears on quest buttons in different states. Click each button option to expand and edit. Click the trash icon to reset to default.
* **Start button**: Edit the text shown when users first see the quest.
* **Continue button**: Edit the text shown when users are in progress.
* **Completed button**: Edit the text shown when the quest is finished.
* **Locked button**: Edit the text shown when the quest isn't accessible yet.
Use clear and concise button text that accurately reflects the action it triggers. This helps users understand the quest flow and avoid confusion.
## Quest rules
Control when, how, and who can participate in your quest.
Set clear time limits to create a sense of urgency and drive more engagement. Announce the time limit in your quest description and use reminders to encourage participation before the deadline.
### Limit quest time
Toggle this on to set start and end dates for your quest availability.
![Limit quest time detail]()
* **Start at**: Click the calendar icon to select when the quest becomes available. Users can't access the quest before this time. Click the **x** to clear the date.
* **End at**: Click the calendar icon to select when the quest closes. Users can't start or continue after this time. Click the **x** to clear the date.
### Additional options
Click the **+** icon to expand these options.
* **Start quest without login**: Toggle this on to allow users to view and interact with the quest without logging in. Useful for preview or demo quests.
* **Dependencies**: Set prerequisites users must complete before accessing this quest. Click to open the dependencies selector.
* **Max participants**: Enter a number to limit how many users can complete this quest. The quest locks automatically when the limit is reached. Great for exclusive or limited-time rewards.
## Completion pop-up
Show users a custom message when they finish your quest.
![Completion pop-up section]()
**Enable completion pop-up**: Toggle this on to activate the completion message.
**Pop-up configuration**: View and edit the message users see when completing the quest. Default text appears in the preview box. Use formatting, emojis, or links to make it engaging.
**Animation type**: Select how the pop-up text appears from the dropdown menu.
Use the completion pop-up to celebrate user achievements, guide them to the next quest, or promote special rewards they've unlocked.
## Advanced settings
Manage visibility, metadata, and additional display rules for your quest.
![Quest advanced settings]()
**Hide quest toggle**: Hide the quest from users while you're still configuring it or testing some tasks. The quest won't appear in the campaign widget.
**Tags**: Enter a tag name in the field (e.g., `new_users`, `beta_testers`, `europe_only`). To add multiple tags, separate them with commas. To remove a tag, click the **x** next to its name.
* **Organize and segment**: Use tags for internal categorization or to target content delivery (e.g., show this quest only to users who match the `new_users` tag passed in the script).
* **Create phased experiences**: Unlock this quest progressively for users who acquire certain tags.
* **A/B test content**: Direct different user segments to alternatively tagged quests.
* **Manage access**: Restrict or grant access to this quest based on user tags.
**Meta**: Add internal notes or tracking information not visible to users. Click in the "Type here" field to enter metadata. Use this for internal organization, notes, or reference IDs. This data is for your team's use only. Click the trash icon to clear the field.
**Visible for**: Show this quest only to specific users by entering their wallet addresses or eIDs. Enter wallet addresses or eIDs in the "Type here" field, separated by commas. When you add users to this list, only those specific users will see this quest in your campaign. Leave this field empty to show the quest to everyone. Click the trash icon to clear the field and make the quest visible to all users again.
**Attributes**: Add custom data attributes to enable advanced styling and unique customization for this specific quest. Enter custom attribute keys and values that your developer can use to apply unique CSS styling to this quest. This allows you to make individual quests look different from others in your campaign without affecting the rest. Click the edit icon to modify or the trash icon to remove attributes.
## Quest actions
Manage your quest with these options available at the bottom of the settings page.
* **Delete**: Click the trash icon to permanently remove this quest from your campaign. A confirmation prompt appears to prevent accidental deletions. This action cannot be undone. All quest data and user progress will be lost.
* **Archive**: Click the download icon to archive your quest configuration. Save quest settings for future reference. Useful for backing up quest data before major changes.
* **Clone**: Click the copy icon to create a clone of this quest. The copy appears in the same quest group. Useful for creating similar quests quickly or testing variations.
Duplicate your quest before making major changes. This gives you a backup version in case you want to revert or compare different configurations.
## Saving your settings
After you've configured all sections of your quest, all changes save automatically as you make them.
Review all sections to ensure everything is correct, then test your quest in the widget to verify it works as expected.
After setting up your quest, preview it in your campaign widget to see how users will experience it. Make adjustments based on how it looks and flows.
## What to do next
Now that your quest is configured:
1. [Add tasks](/tasks/overview) - Create the specific actions users will complete within this quest
2. Monitor performance in [Data analytics](/data-analytics/overview) - Track how users engage with your quest
# Custom rewards
Source: https://docs.claimr.io/rewards/custom-rewards
Use custom rewards to award points to users based on data you already have, outside of Claimr, via manual entry or CSV import.
## What are custom rewards?
Custom rewards are a powerful feature that allows you to reward users based on information you already have about them, outside of Claimr. Instead of users earning rewards through actions within a Claimr campaign (like completing tasks), you directly assign points to specific users based on a pre-defined list.
The primary use case for custom rewards is when you have an existing database of users (e.g., customers, subscribers, community members) and you want to:
* **Onboard them to Claimr**: Give them an initial points balance to incentivize them to join your Claimr campaign.
* **Reward prior activity**: Reward users for actions they've taken *outside* of Claimr (e.g., attending an event, being a long-time subscriber).
* **Target specific segments**: Award points to a specific group of users based on criteria you define (e.g., VIP customers, users who have completed a specific action on your website).
## How custom rewards work
Custom rewards involve associating three pieces of information:
1. **Platform**: The platform the user is on.
2. **Account**: A user identifier. This is how you link the reward to the correct user.
3. **Points**: The number of points you want to award to that user.
You import this information to Claimr and Claimr automatically assigns the specified points to the corresponding users.
## Create rewards
To create custom rewards, you'll import data from a CSV file. This allows you to reward users based on information you already have, without requiring them to perform actions within Claimr.
Go to your Claimr dashboard and select the relevant campaign. Click on the **Rewards** tab and move to **Custom rewards**.
Click the **Create** button. This will open a modal window for configuring the new custom reward.
* **Platform**: Select the platform associated with the user you're rewarding. This helps categorize the reward.
* **Account**: Enter the user's identifier on the selected platform. This could be a wallet address or another platform-specific identifier. Be precise to ensure the reward is assigned correctly.
* **Points**: Enter the number of points you want to award to this user.
* **Create the reward**: Click **Create** to finalize the process.
Once created, the new reward will appear in the table of custom rewards.
## Import rewards
Your CSV file should contain a column for user identifiers (wallet addresses and usernames) and a column for the number of points to award. You can have additional columns, but they are not required for the basic custom reward functionality. The header should say the name of columns.
Click the **Import** button. This will open the modal window on the left.
In the opened modal window, click the **Upload file** button and select the CSV file you prepared.
After uploading, Claimr will display a preview of your CSV data. This preview shows the first few rows of your file.
Use the dropdown menus to map the columns in your CSV file to the required fields in Claimr:
* **Address**: Select the column that contains the user identifiers (e.g., wallet addresses, usernames). Claimr will use this to match the rewards to the correct users.
* **Points**: Select the column that contains the number of points to be awarded.
If your columns are not automatically detected, select them manually.
Once you've mapped the columns correctly, click **Import**. Claimr will process your CSV file and create the custom rewards, assigning the specified points to the corresponding users.
# Rewards
Source: https://docs.claimr.io/rewards/overview
See what rewards can do for your campaigns and find your way into reward settings and custom rewards.
A reward is something of value that you offer to users for completing specific tasks or achieving certain milestones within your campaign. It's a way to recognize and acknowledge their efforts, encouraging them to continue participating and striving for further accomplishments.
Rewards play a crucial role in gamification by:
* **Motivating users**: The prospect of earning rewards encourages users to engage with your campaign and complete tasks.
* **Driving desired actions**: By associating rewards with specific actions, you can incentivize users to take those actions, such as signing up for a newsletter, making a purchase, or referring a friend.
* **Increasing user retention**: Rewards create a sense of accomplishment and encourage users to stay active within your campaign, leading to higher retention rates.
* **Building brand loyalty**: By offering valuable and desirable rewards, you can foster positive associations with your brand and build stronger relationships with your users.
Define and configure the rewards you'll offer for completing quests and tasks.
Award points to users based on data you already have, outside of Claimr.
# Reward settings
Source: https://docs.claimr.io/rewards/reward-settings
Configure reward types, general settings, and type-specific fields for rewards attached to quests or managed independently.
Claimr offers two primary ways to manage rewards for your campaigns:
**Within Quest settings**: You can create and configure rewards directly within a specific quest. These rewards are automatically awarded when a user completes that quest.
![Create reward button within quest settings]()
**Through the Rewards section**: You can create and manage rewards independently of any quest through the **Rewards** tab in your campaign dashboard.
![Create reward from the Rewards tab]()
## General settings
When you click **Create reward**, the full reward configuration panel opens. It contains the following sections:
![Quest reward general settings panel]()
**Short name**
Create a public-facing name for your reward.
**Description**
Add a short summary to help identify the purpose of the reward.
**Image**
Upload an image to visually represent the reward.
## Reward type
Select the reward type to define how it behaves and how it's delivered.
![Reward type section]()
The available types are:
* **Web3 Token**: a digital asset on a blockchain (e.g. ERC-20, NFT)
* **Discord Role**: grants a role in a connected Discord server
* **Resource**: a file or link (e.g. guide, document, video)
* **Virtual Asset**: a digital item used in a game or virtual environment
* **Invite Codes**: one-time codes that unlock access to gated services or communities
* **Gift Codes**: redeemable codes for discounts or digital products
* **Scripted**: custom logic via external scripts or API integrations
* **Points**: adds points to the user's balance
* **Badge**: grants a badge displayed on the user profile
* **Puzzle Piece**: a collectible item used in puzzle-based campaigns
Some reward types require additional setup.
## General configuration
This section appears automatically if the selected reward type requires extra settings:
**Web3 Token**
* Select a network and environment (e.g. Ethereum → Mainnet)
* Choose a contract address
* Set the token value
**Discord Role**
* Add the Claimr bot to your Discord server
* Select the server and fetch available roles
**Resource**
* Add the link to the resource
**Virtual Asset**
* Name the asset
* Set the asset value
**Invite Codes**
* Set the number of codes to generate
**Gift Codes**
* Name the gift (e.g. "5% discount")
* Set the number of codes
**Scripted**
* Configure the script in your developer dashboard
**Points**
* Set the number of points to be awarded
**Badge** and **Puzzle Piece** do not require additional configuration.
## Finalizing your reward
1. Double-check all information to ensure accuracy.
2. Click **Create** to save the reward.
To learn more about managing custom rewards through the Rewards section, visit the [Custom rewards](/rewards/custom-rewards) article.
# SDK
Source: https://docs.claimr.io/sdk-guide
Use the Claimr SDK to integrate Claimr into your web application, customize its behavior, and create a more engaging and rewarding user experience.
SDK (Software Development Kit) is a powerful tool that integrates Claimr's functionalities into your web application. It provides a set of methods and events that enable you to interact with the Claimr widget, customize its behavior, and enhance the user experience.
## Methods
### `complete_task(task_id, data)`
This method allows you to mark a task as complete directly from your web application's front-end. This is useful for tasks that are completed outside of the Claimr widget, such as watching a video or visiting a specific page on your website.
* The `task_id` parameter should be the unique identifier of the task you want to complete, which can be found in your Claimr admin panel.
* The `data` parameter is optional. Pass an object to send extra information along with the completion, for example `{ video_id: 'intro' }`.
This method only works for tasks of the **SDK FrontEnd** type. See [SDK tasks](/tasks/sdk-tasks).
The widget must be on the page and loaded when you call this method. If the widget container is not rendered, or the widget has not finished loading, the call is ignored. Wait for `is_claimr_ready` to be `true` before calling it. See [Method readiness](/frameworks/overview#method-readiness).
### `connect_wallet(address, signature, message, chain, no_reset)`
This method enables users to sign in to your Claimr campaign using their web3 wallet credentials.
* The `address` parameter should be the user's wallet address.
* The `signature` parameter should be the cryptographic signature generated by the user's wallet.
* The `message` parameter should be the message that was signed by the user's wallet.
* The `chain` parameter is optional and should identify the chain the wallet address/signature belongs to.
* The `no_reset` parameter is optional. Pass `true` to prevent the widget from resetting the current session state when the wallet is reconnected.
### `destroy()`
This method removes the Claimr widget instance from your web page.
### `get_user_info(campaign_id, public_key, account, platform)`
This method retrieves information about a specific user from your Claimr campaign using the public API.
* The `campaign_id` parameter should be the unique identifier of your campaign.
* The `public_key` parameter should be the public key generated in your campaign's general settings.
* The `account` parameter should be the user's account identifier. For web3 wallet addresses, use the address in lowercase.
* The `platform` parameter should be the platform identifier. For web3 wallets, use "web3".
### `login(in_popup)`
This method triggers the login dialog within the Claimr widget, allowing users to sign in to their Claimr account.
* The `in_popup` parameter is optional. Pass `true` to open the login dialog inside the contest/leaderboard popup view instead of the main widget (only applies when that popup is available).
### `logout()`
This method logs the user out of their Claimr account within the widget.
### `open_profile_popup()`
This method opens the user's profile popup within the Claimr widget.
### `open_quest(quest_id)`
This method opens a specific quest within the Claimr widget.
* The `quest_id` parameter should be the unique identifier of the quest you want to open, which can be found in your Claimr admin panel.
### `platform_login(platform)`
This method opens the widget's popup and triggers the login flow for a specific platform directly, skipping the general login menu.
* The `platform` parameter should be the identifier of the platform to log in with (for example, a social provider configured in your campaign).
### `select_wallet(address)`
This method tells the widget which of the user's already-connected wallet addresses should be treated as the active/selected one.
* The `address` parameter should be the wallet address to select.
### `set_language(language)`
This method changes the display language of the Claimr widget.
* The `language` parameter should be a supported language code, such as `en` or `fr`.
### `set_theme(theme)`
This method allows you to set the theme of the Claimr widget if supported by your CSS.
* The `theme` parameter should be a string representing the desired theme.
### `set_user_token(token)`
This method sets the user token generated by the Claimr API. This token is used to associate a user's actions within the Claimr widget with their account on your platform.
* The `token` parameter should be the user token generated by the API. Refer to the [Claimr API documentation](/api-guide/user-token) for details on generating user tokens.
## Pre-quests
Pre-quests let visitors earn XP and points on your site before they sign in to Claimr, for example for reading a page, watching a video, or finishing a tutorial. You create pre-quests in your campaign (or with the `claimr_create_pre_quest` [MCP tool](/mcp/tools/quests-and-tasks#pre-quests)), then claim them from your page with `claim_pre_quest()`.
Claimr banks the rewards in a guest pre-session stored in the visitor's browser. When the visitor later signs in to the widget, the banked rewards move to their Claimr account.
The SDK includes a built-in UI for this:
* A **badge** in a corner of the page that shows the banked XP and points. It stays hidden until the visitor has banked something.
* A **toast** for each award.
* An optional **claim button** on the badge that sends the visitor to the page where they sign in and collect their rewards.
Load the script on every page where you claim pre-quests. Claims and the badge work without a widget container, so the page does not need to render the widget itself.
Pre-quest progress is stored in the visitor's `localStorage`, scoped to your organization and campaign. If your site asks for consent before storing data, load the script only after the visitor consents. `logout()` clears this data.
### `claim_pre_quest(quest_id)`
This method claims a pre-quest for the current visitor and returns a promise.
* The `quest_id` parameter should be the ID of the pre-quest.
Claims run one at a time, in the order you call them. The promise resolves to:
* `{ success: true, data }` when the claim is accepted. `data.xp` and `data.pts` hold the awarded XP and points.
* `{ success: false }` when the claim is rejected or the request fails.
* `{ success: false, skipped: true }` when the pre-quest can only be claimed once and this visitor already claimed it.
On success, the badge updates, a toast appears (or `on_pre_quest_notification` is called), and `on_pre_quest_update` fires.
```js theme={"dark"}
video.addEventListener('ended', async () => {
const result = await window.claimr?.claim_pre_quest('PRE_QUEST_ID');
if (result?.success) console.log(`Banked ${result.data.xp ?? 0} XP`);
});
```
### `configure_pre_quest(options)`
This method changes the badge, toast, and claim button settings at runtime. It merges `options` into the current settings, so you only pass what you want to change. `options` can include:
* `position`: badge corner. One of `top-left`, `top-right`, `bottom-left`, or `bottom-right` (default).
* `toast_position`: corner for award toasts. Defaults to `bottom-right`.
* `template`: toast text. Supports the `{amount}`, `{type}`, and `{reason}` placeholders. Defaults to `+{amount} {type} {reason}`.
* `default_icon`: URL of the image shown on the badge and toasts. Absolute, relative, and `data:` URLs all work.
* `types`: display settings per points type, as `{ [type_id]: { icon, label } }`. The `xp` type is labeled `XP` by default; other types default to their ID.
* `event_labels`: toast reasons per pre-quest, as `{ [quest_id]: label }`. Used when the pre-quest has no short description.
* `duration`: how long an award toast stays visible, in milliseconds. Defaults to `4000`.
* `claim_url`: URL of the page where visitors sign in and collect their rewards. That page must render the widget. The claim button links there and adds the pre-session ID as a query parameter.
* `claim_label`: claim button text. Defaults to `Claim rewards`.
* `claim_target`: link target for the claim button. Defaults to `_blank`.
* `claim_psid_param`: name of the query parameter that carries the pre-session ID. Defaults to `psid`.
* `claim_threshold`: minimum banked XP before the claim button appears, as a number. To use other points types, pass an object such as `{ xp: 100, pts: 500 }`; the button appears when any one of the rules is met. Defaults to `0`.
* `theme`: badge and toast colors, as an object with `background`, `color`, `accent`, `muted`, and `border` CSS color values.
The claim button appears when the visitor has banked XP or points, has not yet signed in, meets `claim_threshold`, and either `claim_url` or `on_pre_quest_claim` is set.
```js theme={"dark"}
window.claimr?.configure_pre_quest({
position: 'bottom-left',
toast_position: 'bottom-left',
claim_url: '/quests',
claim_threshold: 50,
types: { gems: { label: 'Gems', icon: '/images/gem.svg' } },
});
```
To turn the badge and toasts off, add `data-pre-quest="false"` to the script tag. See [Pre-quest badge attributes](/widget/widget-attributes#pre-quest-badge).
### `set_pre_quest_pts(balance)`
This method sets the displayed balance directly, without showing a toast or contacting the Claimr backend.
* The `balance` parameter should be an object of amounts per points type, for example `{ xp: 120, gems: 3 }`.
### `get_pre_quest_xp()`
This method returns the visitor's banked XP as a number.
### `get_pre_quest_psid()`
This method returns the visitor's pre-session ID, or an empty string if they have not claimed anything yet.
### `get_pre_quest_history()`
This method returns the visitor's most recent awards (up to 200) as an array of `{ ts, quest_id, pts, xp, balance }` objects, oldest first.
## Events
### `on_analytics_event`
This event is fired when the widget emits an internal analytics event (for example, a page view or task completion). Use it to forward Claimr activity to your own analytics tools.
### `on_campaign_info`
This event is fired when campaign information is loaded or updated within the widget. It receives the campaign info object.
### `on_campaign_error`
This event is fired when the widget cannot show the campaign. It receives the error code, for example:
* `not_published`: the campaign is not published yet.
* `access_denied`: the current user does not have access to the campaign.
* `blocked`: the user is visiting from a restricted region.
The widget also shows its own message for these errors. Use this event to hide the widget area or show your own fallback.
### `on_campaign_loading`
This event is fired when the widget starts loading the campaign.
### `on_campaign_revealed`
This event is fired when the campaign content is rendered and visible in the widget, after its height has been applied. Use it to hide your own loading placeholder.
### `on_connect_wallet`
This event is fired when the widget asks your parent application to handle a wallet connection, such as for
custom wallet integration flows (for example, when `data-platform="dapp"`). Answer it by calling
`claimr.connect_wallet(address, signature, message, chain)` once your wallet is connected - or implement
`on_wallet_request` instead, where `connect` simply returns the address.
Assigning this callback is what tells the widget your application can connect a wallet at all. Leave it unset
and a connect request is refused straight away, rather than the widget waiting on an answer that isn't coming.
### `on_contest_open`
This event is fired when a user opens any quest within the Claimr widget.
### `on_custom_login`
This event is fired when a user logs in using the "custom" sign-in option.
### `on_disconnect_wallet`
This event is fired when the widget asks your parent application to disconnect the currently connected wallet.
### `on_leaderboard_open`
This event is fired when a user opens the leaderboard within the Claimr widget.
### `on_leaderboards_info`
This event is fired when leaderboard data is loaded or updated. It receives the array of leaderboard entries.
### `on_logout`
This event is fired when a user logs out of their Claimr account within the widget.
### `on_market_open`
This event is fired when a user opens the market/store section within the Claimr widget.
### `on_pre_quest_claim`
Assign a function to this event to handle clicks on the pre-quest claim button yourself. It receives an object with `url`, `psid`, `xp`, and `balance`.
If `claim_url` is not set, assigning this callback is what makes the claim button appear, as a button instead of a link. If `claim_url` is set, the button stays a link and your callback runs as the visitor follows it.
### `on_pre_quest_notification`
Assign a function to this event to replace the built-in pre-quest award toast with your own UI. When set, it's called instead of showing the default toast, and receives an object with `quest_id`, `pts`, `xp`, `balance`, `name`, `image`, and `short_desc`.
### `on_pre_quest_update`
This event is fired after a successful `claim_pre_quest()` call that awarded XP or points. It receives the new `balance` and a details object with `quest_id`, `pts`, and `xp`.
### `on_wallet_request`
The single callback for every wallet operation the widget needs your application to perform when
`data-platform="dapp"`. It receives one object with an `op` field and returns (or resolves to) a result;
throwing reports a failure, and the widget shows it rather than waiting.
| `op` | Receives | Return |
| - | - | - |
| `connect` | `namespaces` - the chains the widget can act on, in preference order | `{ address, chain }` |
| `sign_message` | `address`, `message` | `{ signature }` |
| `send_transaction` | `chain_id`, `address`, `request`, `contract`, `method`, `args`, `abi`, `fee` | `{ hash }` |
| `disconnect` | None | `{}` |
```js theme={"dark"}
claimr.on_wallet_request = async ({ op, ...params }) => {
if (op === 'connect') return { address: await connect(), chain: '1' };
if (op === 'sign_message') return { signature: await sign(params.message) };
if (op === 'send_transaction') return { hash: await send(params) };
if (op === 'disconnect') return disconnect(), {};
throw new Error(`unsupported: ${op}`);
};
```
`send_transaction` carries the transaction twice: `request` is the pre-encoded EIP-1193 call, and
`contract` / `method` / `args` / `abi` describe the same call at the ABI level for hosts that rebuild it with
their own library. Use whichever suits your integration.
### `on_request`
Superseded by `on_wallet_request`, and still fully supported - it runs whenever `on_wallet_request` is not set,
so existing integrations need no change.
This event is fired when `data-platform="dapp"` and the widget needs your application to submit an on-chain request (transaction or signing request) using your own wallet integration.
* Receives `chain_id`, `request`, `contract`, `method`, `args`, `abi`, and `fee`.
* Should return (or resolve to) the resulting transaction hash as a string. Returning nothing is reported to the widget as a failure.
### `on_sign_message`
This event is fired when the widget asks your parent application to sign a message with the connected wallet.
Answer it by calling `claimr.connect_wallet(address, signature, message, chain)` - or implement
`on_wallet_request` instead, where `sign_message` simply returns the signature.
As with `on_connect_wallet`, assigning this callback is what advertises the capability: unset, a signature
request is refused immediately instead of waiting.
### `on_user_info`
This event is fired when the widget sends updated information about the currently logged-in user (for example, after login or a profile update). It receives the user object.
## Parameters
### `user`
This parameter contains information about the currently logged-in user, such as their user ID, name, and email address.
### `campaign_info`
This parameter contains information about the currently loaded campaign, populated after the `on_campaign_info` event fires.
### `is_claimr_ready`
This read-only parameter is `true` while the widget is attached and loaded, and ready to receive method calls such as `set_language()` or `complete_task()`. It turns `true` at the same moment the loader posts a `widget::ready` message to your page, and back to `false` when the widget container is removed from the page or `destroy()` is called. See [Method readiness](/frameworks/overview#method-readiness).
### `pq`
This parameter holds the current pre-quest state and settings: the banked `pts`, the pre-session `psid`, whether the progress is already `attached` to a Claimr account, and the options described under `configure_pre_quest()` above. Change it with `configure_pre_quest()` and `set_pre_quest_pts()` rather than mutating it directly.
# Anti-bot tasks
Source: https://docs.claimr.io/tasks/anti-bot-tasks
Prevent automated submissions and ensure real users are interacting with your campaign using CAPTCHA verification and task dependencies.
## What are Anti-bot tasks?
Anti-bot tasks in Claimr are designed to prevent automated submissions and ensure real users are interacting with your campaign. These tasks help you validate that a participant is a human (not a bot) before they proceed to more valuable or sensitive tasks in your quest.
Use Anti-bot tasks to:
* **Add a friction point**: Require users to complete a CAPTCHA check to filter out bots.
* **Protect high-value tasks**: Set dependencies so that users must first pass the CAPTCHA before accessing reward-heavy or critical tasks.
* **Improve campaign integrity**: Reduce the risk of fake completions or fraudulent submissions.
For detailed information about general task settings, including task name, header, description, rewards, dependencies, and more, refer to our [Task Settings](/tasks/task-settings) article.
## Task type
Choose the specific type of task you want to create for your campaign.
![Anti-bot task type selection]()
1. Go to your quest and click **+ Create new task**.
2. Select **Anti Bot** under **Identity and Proof of Humanity**.
3. Considering your aim, select the specific task type from the expanded list.
4. Click **Continue** to proceed to task settings.
## reCAPTCHA check
Since reCAPTCHA tasks are focused on verification, they have only two task-specific configuration fields.
![reCAPTCHA task settings]()
* **Completion points**: The number of points awarded once the user passes the CAPTCHA.
* **Points multiplier (%)** *(optional)*: Boost the final reward by a percentage if needed. For example, setting 10% will give a user 110 points instead of 100.
Once you're done:
* Click **Create task** to save and add it to your quest right away. You'll now see the task listed in your quest. From there, you can reorder it, delete it, or edit it anytime.
* Or, click **Advanced settings** to continue configuring more options specific to the selected task type.
## Control access using dependencies
Want to use reCAPTCHA as a gatekeeper? Make completion of the Anti-bot task required before showing other tasks.
To do this:
1. Go to the task you want to protect.
2. Open its **settings**.
3. Scroll to the **Dependencies** section.
![Dependencies section]()
4. In the **Open after tasks** field, select your reCAPTCHA task.
5. Make sure the reCAPTCHA task appears before the protected task in the campaign list.
## How it looks to users
Users will first see the Anti-bot task. Once the task is completed:
* Users instantly earn the points you've assigned
* The system marks them as valid users
* Any dependent task becomes visible and can be accessed immediately
![Anti-bot task, user view]()
If the Anti-bot task is placed before high-value tasks in your campaign and properly linked with dependencies, users won't even notice the behind-the-scenes logic - just a smooth and secure experience.
# API tasks
Source: https://docs.claimr.io/tasks/api-tasks
Connect your external application directly to Claimr's reward system and reward users for actions, values, or events that happen outside Claimr.
## What are API Tasks?
The API task type allows you to connect your external application or platform directly to Claimr's reward system. These tasks listen for specific API calls from your platform and let you reward users for actions, values, or events that happen outside Claimr.
**Use API tasks to:**
* Reward users for actions performed in your own app or platform that are not native to Claimr.
* Synchronize user progress and achievements from your external platform with their Claimr profile.
* Track important metrics or activity data that reflect engagement in your product.
* Create reward systems that react instantly to real-time data from your application.
API tasks combine both event-based and value-based logic. When rewarding users based on continuous value streams, event counts, or specific actions with measurable results, your platform will use the `POST /stream/value` and `POST /action/value` methods. For details on how to set these up, see the sections on `POST /stream/value` and `POST /action/value` in the [API Methods](/api-guide/api-methods) article.
For detailed information about general task settings, including task name, header, description, rewards, dependencies, and more, refer to the [Task settings](/tasks/task-settings) article.
There are five main types of API tasks you can configure:
* **Custom events count**: Track how many times a custom event occurred.
* **Custom events value**: Track the total numeric value of a custom event.
* **API number value**: Fetch and verify a numeric value returned by an API input.
* **API stream value**: Track live data continuously sent from your API endpoint.
* **API score**: Validate a user score returned by your API.
## Custom events count
Click **+ Create new task**.
Under the Category section, select **API**.
Choose **Custom Events Count** from the list of task types.
Click **Continue** to proceed to task settings.
Now move on to configuring the specific settings for your task.
![Custom events count task settings]()
* **Completion points**: Set the number of points awarded once the user reaches the required event count.
* **Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 5% multiplier increases the final reward by 5%.
* **Recurrence**: Control how often users can complete the task:
* Once - can only be completed one time per user.
* 8h - available once every eight hours.
* Daily - available once every 24 hours.
* Weekly - available once every 7 days.
* Multiple - stays open and can be completed as many times as needed, one after another, without any waiting time.
* **Event category (optional)**: A tag that helps you organize and group event types.
* **Event name**: The exact event identifier being tracked. Example, "Session".
* **Platform**: The platform or integration source that sends the event. For these tasks, "web3".
* **Query (optional)**: A filter that defines which events should be counted based on specific parameters inside the event data. If a query is set, only events matching the filter are counted. For example, if your event contains `{"itemID": 2}`, a query like `[?itemId==2]` will count only those events where itemID equals 2. If no query is set, all received events are counted.
* **Events count**: The minimum number of events required to trigger the reward.
* **Start at (optional)**: The date and time when the task becomes active. If set, events that occur before this time are ignored.
* **End at (optional)**: The date and time when the task stops being active. If set, events after this time are ignored.
If both Start at and End at are defined, only events that occur within this period are counted.
* **Claim button text (optional)**: Custom label for the task's claim button. Example: "Get your reward".
* **Refresh button text (optional)**: Custom label for the button that updates task progress. Example, "Update".
**Optional toggles**
* **Hide progress?**: Hide progress information from the user interface.
* **Is progressive reward?**: When enabled, the final reward scales based on how much the user exceeds the required event count. For example, if the expected count is 100 and the user reaches 300, they receive 3× the reward. This setting motivates users to continue performing actions beyond the minimum requirement.
* **Is continuous?**: When enabled, the task remains open even after completion. Users can continue earning additional points each time they meet the task conditions again. This option also affects recurrence logic.
**Example**: With daily recurrence and continuous off, all events are tracked and counted. With daily recurrence and continuous on, only events from the last 24 hours are considered.
* **Max progressive count (optional)**: Set the maximum event count that can be used to calculate progressive rewards. If the user exceeds this number, the reward will still be capped at the maximum. For example, if the maximum progressive count is 1,000 and the user completes 10,000 events, they will receive the reward for 1,000 events only.
Once you're done, click **Create task** to save and add it to your quest right away. You'll now see the task listed in your quest. From there, you can reorder it, delete it, or edit it anytime. Or click **Advanced settings** to configure additional options specific to this task type.
## Custom events value
Click **+ Create new task**.
Under the Category section, select **API**.
Choose **Custom Events Value** from the list of task types.
Click **Continue** to proceed to task settings.
Now move on to configuring the specific settings for your task.
![Custom events value task settings]()
* **Completion points**: Set the number of points awarded once the total event value reaches the threshold.
* **Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
* **Recurrence**: Control how often users can complete the task:
* Once - can only be completed one time per user.
* 8h - available once every eight hours.
* Daily - available once every 24 hours.
* Weekly - available once every 7 days.
* Multiple - stays open and can be completed as many times as needed, one after another, without any waiting time.
* **Event category (optional)**: A tag that helps you organize and group event types.
* **Event name**: The exact event identifier being tracked. Example, "Session".
* **Platform**: The platform or integration source that sends the event. For these tasks, "web3".
* **Query (optional)**: A path that extracts or filters the numeric value from incoming events. If a query is set, only the data that matches the filter will be used to calculate the total value. For example, a query like `[].data.bet` extracts the "bet" value from each event in a list of received data. If no query is set, all event values are included.
* **Events value**: The minimum total value needed across all received events to trigger the reward.
* **Start at (optional)**: The date and time when the task becomes active. If set, events that occur before this time are ignored.
* **End at (optional)**: The date and time when the task stops being active. If set, events after this time are ignored.
If both Start at and End at are defined, only events that occur within this period are counted.
* **Claim button text (optional)**: Custom label for the task's claim button. Example, "Get reward".
* **Refresh button text (optional)**: Custom label for the button that updates task progress. Example, "Update".
**Optional toggles**
* **Hide progress?**: Hide progress information from the user interface.
* **Is progressive reward?**: When enabled, the final reward scales based on how much the user exceeds the required event value. For example, if the expected value is 100 and the user reaches 300, they receive 3× the reward. This setting is useful when the event contains numeric or quantity-based data, such as deposit amount, total bets, or items collected.
* **Is continuous?**: When enabled, the task remains open even after completion. Users can continue earning additional points each time they reach the required value again. This option also affects recurrence logic.
**Example**: With daily recurrence and continuous off, the total value is counted across all events. With daily recurrence and continuous on, only the value from the last 24 hours is considered.
* **Max progressive value (optional)**: Set the maximum total value that can be used to calculate progressive rewards. If the user exceeds this number, the reward will still be capped at the maximum. For example, if the maximum progressive value is 1,000 and the user reaches 10,000, they will receive the reward for 1,000 only.
Once you're done, click **Create task** to save and add it to your quest right away. You'll now see the task listed in your quest. From there, you can reorder it, delete it, or edit it anytime. Or click **Advanced settings** to configure additional options specific to this task type.
#### Example of a query generated with AI
**Prompt example**: Provide a JMESPath query to extract the `data.bet` attribute from each item in a list.
**Prompt answer:**
To extract the `data.bet` attribute from each item in a list using JMESPath, use the query `[].data.bet`:
* `[]` - iterates over each element in the list.
* `.data.bet` - accesses the `data.bet` attribute of each element.
```json theme={"dark"}
[
{ "data": { "bet": 100 } },
{ "data": { "bet": 200 } },
{ "data": { "bet": 300 } }
]
```
Result:
```json theme={"dark"}
[100, 200, 300]
```
## API number value
Click **+ Create new task**.
Under the Category section, select **API**.
Choose **API number value** from the list of task types.
Click **Continue** to proceed to task settings.
Now move on to configuring the specific settings for your task.
![API number value task settings]()
* **Completion points**: Set the number of points awarded when the user completes the task.
* **Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 20% multiplier increases the final reward by 20%.
* **Message (optional)**: Enter a message that can be displayed to the user upon successful completion. Example: "You earned `{api_user_value}` EpiValue out of `{api_min_value}` required."
* **Min value**: Define the target score or XP value that a user needs to reach for this task to be considered complete. When the incoming value (received via API for this task) meets or exceeds this Min value, the task is marked as completed.
* **Button Text (optional)**: Enter the text that will appear on the claim button for this task. Example: "Claim your reward".
Once you're done, click **Create task** to save and add it to your quest right away. You'll now see the task listed in your quest. From there, you can reorder it, delete it, or edit it anytime. Or click **Advanced settings** to configure additional options specific to this task type.
## API stream value
Click **+ Create new task**.
Under the Category section, select **API**.
Choose **API stream value** from the list of task types.
Click **Continue** to proceed to task settings.
Now move on to configuring the specific settings for your task.
![API stream value task settings]()
* **Completion points**: Set the number of points awarded when the user completes the task.
* **Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
* **Message (optional)**: Enter a message that can be displayed to the user upon successful completion. Example: "Make purchases in the range `{api_min_value}`-`{api_max_value}`, at least `{api_event_count}` times for a total amount of at least `{api_total_value}`."
* **Stream name**: Define a unique identifier for a group of tasks. Multiple tasks can share the same stream name to react collectively to API calls. Choose a meaningful name for your stream (e.g., sales\_stream, order\_processing).
* **Min stream value**: Set the minimum value threshold. Any values passed by API calls below this limit will be ignored. Set this to the lowest value considered significant for your task (e.g., if values below 10 are irrelevant, set min stream value to 10).
* **Max stream value**: Set the maximum value threshold. Any values passed by API calls above this limit will be ignored. Set this to the highest value that is relevant (e.g., if values above 1000 should be ignored, set max stream value to 1000).
* **Expected success events count**: Define the minimum number of events within the specified Min stream value and Max stream value limits required to consider the task as completed. Specify the number of successful events needed (e.g., if at least 50 events are needed, set expected success event count to 50).
* **Expected total success events value**: Specify the total sum of all events within the specified Min stream value and Max stream value limits required to consider the task as completed. Define the cumulative value needed for task completion (e.g., if the total value must be at least 5000, set expected total success events value to 5000).
* **Button text (optional)**: Enter the text that will appear on the claim button for this task. Example: "Get reward".
Once you're done, click **Create task** to save and add it to your quest right away. You'll now see the task listed in your quest. From there, you can reorder it, delete it, or edit it anytime. Or click **Advanced settings** to configure additional options specific to this task type.
## API score
Click **+ Create new task**.
Under the Category section, select **API**.
Choose **API Score** from the list of task types.
Click **Continue** to proceed to task settings.
Now move on to configuring the specific settings for your task. These settings control how a user's score or points (XP) for this task are updated based on values received via an API, and what constitutes task completion.
![API score task settings]()
* **Completion points**: The number of points awarded when the user completes the task.
* **Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
* **Message (optional)**: Enter a message that can be displayed to the user upon successful completion.
* **Increment XP**: Determines how an incoming value (received via API for this task) affects the user's current XP or score.
* If Increment XP is enabled: The incoming value is added to the user's current XP. New XP = Current XP + value.
* If Increment XP is disabled: The incoming value replaces (overwrites) the user's current XP. New XP = value.
* **Final score (optional)**: Enter the target score or XP value that a user needs to reach for this task to be considered complete. When the user's current XP for this task (calculated according to the Increment XP setting) reaches or exceeds this Final score, the task is marked as completed.
#### Examples of Increment XP behavior
Current XP = 80, incoming value = 20
* If Increment XP is on → New XP = 80 + 20 = 100
* If Increment XP is off → New XP = 20
#### Task completion example
If Final score is set to 200: The task will be marked as complete when the user's current XP for this task becomes 200 or greater, regardless of whether Increment XP is on or off (as it only affects how the current XP is calculated with each new value received).
Once you're done, click **Create task** to save and add it to your quest right away. You'll now see the task listed in your quest. From there, you can reorder it, delete it, or edit it anytime. Or click **Advanced settings** to configure additional options specific to this task type.
# Binance tasks
Source: https://docs.claimr.io/tasks/binance-tasks
Reward Binance users for connecting their account, passing KYC, trading, holding tokens and depositing onto the exchange.
## What are Binance tasks?
Binance tasks let users connect their Binance account to Claimr through an API key they create on Binance. Claimr then reads the account to verify activity and reward it.
There are 6 Binance task types:
* **Connect Binance Account**: Link a user's Binance account with an API key.
* **Binance KYC**: Verify that the connected account has completed identity verification.
* **Binance BABT**: Verify KYC with no API key, from the Binance Account Bound Token in the user's wallet.
* **Binance Trading Volume**: Track the spot volume the user traded over a time window.
* **Binance Hold Token**: Check that the user holds at least a set amount of a token.
* **Binance Deposit**: Check that the user deposited at least a set amount of a token onto Binance.
The user connects the account once, with the **Connect Binance Account** task. Every other Binance task reuses that key, and asks for one only if none is stored yet.
## Connect Binance account
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Binance**.
4. Select **Connect Binance Account** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
Users create an API key in their Binance account settings and enter it in the task (API key and secret).
Ask users to create a read-only key. Claimr only ever reads the account.
Once the key works, Claimr stores it for the user's other Binance tasks and marks the task as complete.
## Binance KYC
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Binance**.
4. Select **Binance KYC** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
This task confirms that the connected Binance account has completed identity verification. Binance reports the verification status for the connected key.
Claimr doesn't receive KYC data, only whether the account is verified.
## Binance BABT
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Binance**.
4. Select **Binance BABT** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Verification link (optional):** The page where users mint their BABT.
This task checks that a wallet the user signed in with holds a Binance Account Bound Token (BABT) on BNB Chain. Only KYC-verified Binance users can mint one, so it proves a verified Binance account without any API key. A BABT that Binance revoked no longer counts.
The same check is also available on the [Onchain KYC tasks](/tasks/onchain-kyc-tasks) page.
## Binance trading volume
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Binance**.
4. Select **Binance Trading Volume** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Symbol:** The spot trading pair, written the way Binance writes it (for example, `BTCUSDT`). To count several pairs, separate them with commas. Their volumes are added up, so pick pairs that share a quote currency.
* **Volume:** The volume the user must reach, in the pair's quote currency.
* **Maker volume only? (optional):** Count only trades where the user provided liquidity as a maker.
* **Time, h (optional):** Count only trades from the last number of hours.
* **Start at** and **End at (optional):** Count only trades between these dates. With no time window set, the task counts the last 90 days.
* **Is progressive reward? (optional):** Scale the reward with how many times the user reaches the volume. Example: if 10 USDT of volume earns 2 points, 20 USDT earns 4 points.
* **Max progressive amount (optional):** The highest volume used to calculate progressive rewards. Example: with a limit of 100,000 USDT, a user who trades 1,000,000 USDT still receives the reward for 100,000 USDT.
* **Is continuous (optional):** Keep the task open after completion, so users keep earning as their volume grows.
## Binance hold token
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Binance**.
4. Select **Binance Hold Token** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Token:** The token ticker, for example `USDT`.
* **Amount:** The amount of the token the user must hold.
Claimr checks the balance when the user claims the task. Spot balances count, including tokens locked in open orders.
## Binance deposit
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Binance**.
4. Select **Binance Deposit** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Token:** The token ticker, for example `USDT`.
* **Amount:** The amount the user must deposit, in the token.
* **Network (optional):** Count only deposits that arrived on this network. Use the network name as Binance shows it. Leave it empty to count any network.
* **Time, h**, **Start at** and **End at (optional):** Count only deposits made in this window.
Only deposits the exchange has credited to the account count. Deposits older than 89 days are never counted, because some exchanges keep no older deposit history.
# Binance tasks
Source: https://docs.claimr.io/tasks/bitcoin-tasks
Let users connect their Binance account to Claimr, verify KYC status, and calculate activity-based rewards from Binance data.
## What are Binance tasks?
Binance tasks allow users to connect their Binance account to Claimr, verify their KYC status, and calculate activity-based rewards from Binance data.
There are three main types of Binance tasks:
* **Connect Binance Account**: Link a user's Binance account via API key.
* **Binance KYC**: Verify that the connected account has completed KYC verification.
* **Binance Trading Volume**: Track the user's total trading volume on Binance.
![Binance task types overview]()
All Binance tasks belong to the Onchain Actions category and the Binance group.
To set up the task:
1. Go to the Onchain Actions category.
2. Select Binance to filter the available options.
3. Considering your aim, select the specific task type.
## Connect Binance account
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Binance**.
4. Select **Connect Binance Account** from the list of task types.
5. Click **Continue** to proceed to task settings.
Now move on to configuring the specific settings for your task.
![Connect Binance account task settings]()
* **Completion points:** Set the number of points awarded when the user successfully connects their Binance account.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
Users must create an API key in their Binance account and connect it to Claimr.
Follow the official Binance documentation to generate your key: [How to create API keys on Binance?](https://www.binance.com/en/support/faq/detail/360002502072)
Once connected, Claimr automatically verifies the account and marks the task as complete.
## Binance KYC
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Binance**.
4. Select **Binance KYC** from the list of task types.
5. Click **Continue** to proceed to task settings.
Now move on to configuring the specific settings for your task.
![Binance KYC task settings]()
* **Completion points:** Set the number of points awarded when the user's Binance account is verified through KYC.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. For example, a 5% multiplier increases the final reward by 5%.
This serves as an anti-sybil measure, confirming that the user is real and has completed Binance's identity verification process.
Claimr doesn't receive KYC data directly, only the verified status.
## Binance trading volume
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Binance**.
4. Select **Binance Trading Volume** from the list of task types.
5. Click **Continue** to proceed to task settings.
Now move on to configuring the specific settings for your task.
![Binance trading volume task settings]()
* **Completion points:** Set the number of points awarded when the user reaches the required trading volume.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
* **Symbol:** Enter the trading pair symbol you want to track (for example, "BTC/USDT"). The exact symbol must match Binance's naming convention.
* **Volume:** Define the total trading volume the user must reach for this task to be considered complete.
* **Is progressive reward? (optional):** Enable this option to scale rewards based on how much the user exceeds the required trading volume.
* For example, if 10 USD equals 2 points, then 20 USD equals 4 points.
* The final reward increases proportionally with higher trading volumes.
* **Max progressive amount (optional):** Set the maximum trading volume used to calculate progressive rewards.
* For example, if the limit is 100,000 USD and the user trades 1,000,000 USD, they still receive the reward calculated for 100,000 USD.
* This cap prevents disproportionate rewards for extremely large trading volumes.
* **Is continuous (optional):** Enable this option to keep the task open after completion. Users can continue earning points each time they meet the task conditions again.
Once you're done:
Click **Create task** to save and add it to your quest right away. You'll now see the task listed in your quest. From there, you can reorder it, delete it, or edit it anytime.
Or click **Advanced settings** to configure additional options specific to this task type.
# Bitget tasks
Source: https://docs.claimr.io/tasks/bitget-tasks
Reward Bitget users for connecting their account, trading, holding tokens and depositing onto the exchange.
## What are Bitget tasks?
Bitget tasks let users connect their Bitget account to Claimr through an API key they create on Bitget. Claimr then reads the account to verify activity and reward it.
There are 4 Bitget task types:
* **Connect Bitget Account**: Link a user's Bitget account with an API key.
* **Bitget Trading Volume**: Track the spot volume the user traded over a time window.
* **Bitget Hold Token**: Check that the user holds at least a set amount of a token.
* **Bitget Deposit**: Check that the user deposited at least a set amount of a token onto Bitget.
The user connects the account once, with the **Connect Bitget Account** task. Every other Bitget task reuses that key, and asks for one only if none is stored yet.
## Connect Bitget account
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Bitget**.
4. Select **Connect Bitget Account** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
Users create an API key in their Bitget account settings and enter it in the task (API key, secret and passphrase).
Bitget doesn't report a key's permissions, so any working key is accepted. Ask users to create a read-only key. Bitget also doesn't report KYC status, so there is no Bitget KYC task.
Claimr reads Bitget through its Unified Trading Account API. Accounts still on Bitget's Classic account mode can't be read.
Once the key works, Claimr stores it for the user's other Bitget tasks and marks the task as complete.
## Bitget trading volume
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Bitget**.
4. Select **Bitget Trading Volume** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Symbol:** The spot trading pair, written the way Bitget writes it (for example, `BTCUSDT`). To count several pairs, separate them with commas. Their volumes are added up, so pick pairs that share a quote currency.
* **Volume:** The volume the user must reach, in the pair's quote currency.
* **Maker volume only? (optional):** Count only trades where the user provided liquidity as a maker.
* **Time, h (optional):** Count only trades from the last number of hours.
* **Start at** and **End at (optional):** Count only trades between these dates. With no time window set, the task counts the last 90 days.
* **Is progressive reward? (optional):** Scale the reward with how many times the user reaches the volume. Example: if 10 USDT of volume earns 2 points, 20 USDT earns 4 points.
* **Max progressive amount (optional):** The highest volume used to calculate progressive rewards. Example: with a limit of 100,000 USDT, a user who trades 1,000,000 USDT still receives the reward for 100,000 USDT.
* **Is continuous (optional):** Keep the task open after completion, so users keep earning as their volume grows.
## Bitget hold token
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Bitget**.
4. Select **Bitget Hold Token** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Token:** The token ticker, for example `USDT`.
* **Amount:** The amount of the token the user must hold.
Claimr checks the balance when the user claims the task. The unified trading account and the funding account both count. Borrowed funds and trading bonuses don't count.
## Bitget deposit
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Bitget**.
4. Select **Bitget Deposit** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Token:** The token ticker, for example `USDT`.
* **Amount:** The amount the user must deposit, in the token.
* **Network (optional):** Count only deposits that arrived on this network. Use Bitget's chain name, for example `trc20` or `erc20`. Leave it empty to count any network.
* **Time, h**, **Start at** and **End at (optional):** Count only deposits made in this window.
Only deposits the exchange has credited to the account count. Deposits older than 89 days are never counted, because some exchanges keep no older deposit history.
# Bybit tasks
Source: https://docs.claimr.io/tasks/bybit-tasks
Reward Bybit users for connecting their account, passing KYC, trading, holding tokens and depositing onto the exchange.
## What are Bybit tasks?
Bybit tasks let users connect their Bybit account to Claimr through an API key they create on Bybit. Claimr then reads the account to verify activity and reward it.
There are 5 Bybit task types:
* **Connect Bybit Account**: Link a user's Bybit account with an API key.
* **Bybit KYC**: Verify that the connected account has completed identity verification.
* **Bybit Trading Volume**: Track the spot volume the user traded over a time window.
* **Bybit Hold Token**: Check that the user holds at least a set amount of a token.
* **Bybit Deposit**: Check that the user deposited at least a set amount of a token onto Bybit.
The user connects the account once, with the **Connect Bybit Account** task. Every other Bybit task reuses that key, and asks for one only if none is stored yet.
## Connect Bybit account
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Bybit**.
4. Select **Connect Bybit Account** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
Users create an API key in their Bybit account settings and enter it in the task (API key and secret).
Only read-only keys are accepted. If a key can trade or withdraw, the task refuses it and asks the user for a read-only key, so Claimr never stores a key that could move funds.
Once the key works, Claimr stores it for the user's other Bybit tasks and marks the task as complete.
## Bybit KYC
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Bybit**.
4. Select **Bybit KYC** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
This task confirms that the connected Bybit account has completed identity verification. The task passes once Bybit reports KYC level 1 or higher.
Claimr doesn't receive KYC data, only whether the account is verified.
## Bybit trading volume
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Bybit**.
4. Select **Bybit Trading Volume** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Symbol:** The spot trading pair, written the way Bybit writes it (for example, `BTCUSDT`). To count several pairs, separate them with commas. Their volumes are added up, so pick pairs that share a quote currency.
* **Volume:** The volume the user must reach, in the pair's quote currency.
* **Maker volume only? (optional):** Count only trades where the user provided liquidity as a maker.
* **Time, h (optional):** Count only trades from the last number of hours.
* **Start at** and **End at (optional):** Count only trades between these dates. With no time window set, the task counts the last 90 days.
* **Is progressive reward? (optional):** Scale the reward with how many times the user reaches the volume. Example: if 10 USDT of volume earns 2 points, 20 USDT earns 4 points.
* **Max progressive amount (optional):** The highest volume used to calculate progressive rewards. Example: with a limit of 100,000 USDT, a user who trades 1,000,000 USDT still receives the reward for 100,000 USDT.
* **Is continuous (optional):** Keep the task open after completion, so users keep earning as their volume grows.
## Bybit hold token
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Bybit**.
4. Select **Bybit Hold Token** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Token:** The token ticker, for example `USDT`.
* **Amount:** The amount of the token the user must hold.
Claimr checks the balance when the user claims the task. The unified trading account and the funding account both count. Borrowed funds don't count. Accounts that aren't unified trading accounts can't be read.
## Bybit deposit
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Bybit**.
4. Select **Bybit Deposit** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Token:** The token ticker, for example `USDT`.
* **Amount:** The amount the user must deposit, in the token.
* **Network (optional):** Count only deposits that arrived on this network. Use Bybit's chain name, for example `TRX` or `ETH`. Leave it empty to count any network.
* **Time, h**, **Start at** and **End at (optional):** Count only deposits made in this window.
Only deposits the exchange has credited to the account count. Deposits older than 89 days are never counted, because some exchanges keep no older deposit history.
# Block tasks
Source: https://docs.claimr.io/tasks/common-tasks/block-tasks
Guide users through a simple action like clicking a button or copying text before they can continue.
## What are Block tasks?
Block tasks are used to guide users through a simple action before they can continue - such as clicking a button or copying a piece of text. They don't require any proof of completion, submissions, or account connections. Instead, Block tasks act as checkpoints in your quest, helping you control pacing, share static content, or confirm user interaction.
**Use Block tasks to:**
* Prompt users to take a manual step (e.g., copy a code, follow an instruction)
* Add structural checkpoints between tasks
* Distribute static information without validation or tracking
## Configure a Block task
![Block task type selection]()
To configure a Block task in Claimr:
1. From your campaign dashboard, go to the **Quests** tab and click on the quest where you want to add a Block task.
2. On the quest settings page, click **+ Create new task**.
3. In the Category section, click **General**.
4. In the Groups section, click **Common**.
5. Select **Block** from the Tasks list.
6. Click **Continue**.
## Task settings
After selecting the task type, move to the next page and configure the following fields:
![Block task settings]()
* **Completion points**: Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. For example, if your completion points are set to 100 and your multiplier is 5%, the final reward is 105 points.
* **Recurrence:** Control how often users can complete the task:
* **Once** - can only be completed one time per user.
* **Daily** - available once every 24 hours.
* **Weekly** - available once every 7 days.
* **Multiple** - the task stays open and can be completed as many times as needed, one after another, without any waiting time.
Now you can configure options specific to Block tasks.
* **Text to copy** - Add and customize the text that appears beside the button and can be copied to the clipboard. If left empty, only the button will be displayed.
* **Show button?** - Enable this toggle if you want users to confirm the action by clicking a button.
* **Button text** - Customize the label shown on the confirmation button. Only appears if "Show button?" is enabled.
## How Block tasks appear to users
![Block task, user view]()
When users encounter a Block task, they see a simple interaction:
* Instructions and user's reward
* The text to copy, displayed as a clickable link (if set)
* A button to confirm the action (if enabled)
Clicking the button completes the task and grants the configured reward.
If recurrence is set as Multiple, the user can repeat the action right away - the task resets automatically after each completion.
**Pro tip**: Use Block tasks as educational checkpoints or to share important information (like referral codes, wallet addresses, or instructions) that users need to copy before proceeding to the next step.
# Custom task
Source: https://docs.claimr.io/tasks/common-tasks/custom-task
Require users to submit a text-based answer as verification of completing a task.
## What are Custom tasks?
Use Custom tasks to confirm that a user has completed an instruction that isn't directly trackable. These tasks let you define a required action (submitting a wallet address, pasting an ID, or entering a response) and optionally review it before approval. They're useful when you need flexibility, optional manual validation, or a free-form response.
**Use Custom tasks to:**
* Ask users to complete an off-platform action and paste proof
* Collect responses in a short or long text field
* Set up manual review with pending approval
* Add flexible steps between or after verified actions
For detailed information about general task settings, including task header, description, rewards, dependencies, and more, refer to [Task Settings](/tasks/task-settings).
## Configure a Custom task
![Custom task type selection]()
To configure a Custom task in Claimr:
1. From your campaign dashboard, go to the **Quests** tab and click on the quest where you want to add a Custom task.
2. On the quest settings page, click **+ Create new task**.
3. In the Category section, click **General**.
4. In the Groups section, click **Common**.
5. Select **Custom Task** from the Tasks list.
6. Click **Continue**.
## Task settings
After selecting the task type, move to the next page and configure the following fields:
![Custom task settings]()
* **Completion points**: The number of points awarded when the user completes the task.
* **Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 20% multiplier increases the final reward by 20%.
* **Recurrence**: Control how often users can complete the task:
* **Once** - can only be completed one time per user.
* **Daily** - available once every 24 hours.
* **Weekly** - available once every 7 days.
* **Multiple** - the task stays open and can be completed as many times as needed, one after another, without any waiting time.
Now configure options specific to Custom tasks.
* **Message** - Add a short instruction that will appear above the input field. This can include context about what the user should submit (e.g., "Enter your email" or "Paste your transaction ID").
* **WIP Message** - Add a message that will be shown while the task is pending approval. For example: "This task will be completed once your submission is reviewed."
* **Auto confirm?** - Enable this toggle if you want the task to be automatically marked as complete once the user submits a response. If disabled, the task will stay in a "pending" state until manually approved.
* **Long Text?** - Enable this toggle to change the input field from a single line to a multi-line text area. Useful for collecting longer responses.
* **Button text** - Customize the label on the confirmation button (e.g., "Submit" or "Confirm").
* **Resubmit button text** - Customize the label for the button that appears if the user is asked to submit again.
### How Custom tasks appear to users
When users encounter a Custom task, they see the following elements:
* The instruction you set in the Message field
* A single-line input or multi-line text box, depending on whether Long Text? is enabled
* A button to confirm the submission
![Custom task, user view]()
If Auto confirm? is enabled, the task will be marked as complete immediately after the user clicks the button. If disabled, the task remains in a pending state until it is manually reviewed. The user will see the WIP Message during this period.
If recurrence is set as Multiple, users can repeat the action once it's confirmed - with no cooldown between submissions.
**Pro tip**: Custom tasks are perfect for collecting user-generated information like wallet addresses, social media handles, or completion confirmations for off-platform actions. Enable manual review when quality control is important.
# Daily checkin
Source: https://docs.claimr.io/tasks/common-tasks/daily-checkin
Reward users for returning to your quest day after day with configurable daily rewards.
## What are Daily checkin tasks?
Reward users for returning to your quest day after day. Each day, they can click a button to claim a reward: either points, off-chain assets, or both. You can configure different rewards for each day and display a visual calendar to track progress. These tasks are useful for building engagement streaks and rewarding consistency.
**Use Daily Checkin tasks to:**
* Encourage users to return every day
* Set escalating or rotating rewards
* Build habit loops and campaign momentum
* Track user consistency with visual progress
For detailed information about general task settings, including task header, description, rewards, dependencies, and more, refer to [Task Settings](/tasks/task-settings).
## Create a Daily checkin task
To configure a Daily checkin task in Claimr:
![Daily checkin task type selection]()
1. From your campaign dashboard, go to the **Quests** tab and click on the quest where you want to add a Daily Checkin task.
2. On the quest settings page, click **+ Create new task**.
3. In the Category section, click **General**.
4. In the Groups section, click **Common**.
5. Select **Daily Checkin** from the Tasks list.
6. Click **Continue**.
## Task settings
![Daily checkin task settings]()
At this stage, you'll see a simplified configuration screen. However, not all settings are available here.
To access full configuration options, click **Create task**, then open the task in edit mode from your quest dashboard. The edit view gives you complete control over each day's points, optional rewards, and calendar display.
**Create Daily Reward**: Click this button to add new days to your check-in cycle.
**Daily reward table**: Use this table to define rewards for each day:
| Column | Description |
| - | - |
| **Day** | The day number in the cycle (e.g., 1, 2, 3...) |
| **Points** | The number of points awarded for that day |
| **Rewards** | Additional assets like NFTs or tokens, configured through Claimr's reward system. Shows "-" if no reward is set. |
You can drag and reorder days using the handle icon on the left of each row.
**Calendar**: Choose whether to display the visual calendar:
* **daily** - The calendar will be shown in the campaign widget, displaying all days in the cycle
* **(blank/other)** - The calendar is hidden; only the claim button appears
Rewards will loop in the order defined. After users complete all days, the cycle restarts from Day 1.
### Save and configure
**Back**: Click to return to the previous screen without saving
**Advance settings**: Click to configure additional task settings like dependencies, completion pop-ups, and metadata
**Create task**: Click to save your task and add it to your quest
You can return and modify any reward value or display setting from the quest dashboard at any time.
### How Daily Checkin tasks appear to users
#### When the calendar is enabled
Users see a visual layout showing the full check-in cycle: one tile per day, based on the number of days configured in the task settings. Each tile displays the reward for that day (e.g., 50, 75, 100 points).
**Before claiming:**
![Daily checkin before claiming]()
* The current day is active and highlighted
* A button appears showing the number of points available to claim (e.g., "Earn 50 Points")
**After claiming:**
![Daily checkin after claiming]()
* A green checkmark appears next to the current day
* The button is replaced with a message showing the reward for the next check-in (e.g., "Come back tomorrow to get 75 Points")
Only one check-in can be claimed per day. Users return the next day to continue the cycle, and the calendar updates visually with each interaction.
#### When the calendar is disabled
* The user sees only the check-in button (no grid or visual progress)
* After claiming, the button is replaced with a confirmation message (e.g., "Come back tomorrow") without showing upcoming rewards
**Pro tip**: Use escalating rewards (increasing points each day) to incentivize users to maintain their streak. Set higher rewards on Day 7 or Day 30 to celebrate milestone completions.
# HTTP request tasks
Source: https://docs.claimr.io/tasks/common-tasks/http-request-tasks
Create Claimr tasks that utilize HTTP requests to interact with your own APIs for custom task completion logic.
## What are HTTP request tasks?
HTTP Request tasks allow you to integrate your own APIs into your Claimr quests, giving you greater flexibility and control over task completion logic. These tasks send HTTP requests to your API endpoints and process the responses to determine task completion or reward amounts.
**Use HTTP Request tasks to:**
* Leverage your existing API infrastructure
* Configure tasks without requiring specific settings within Claimr
* Define custom logic for task completion based on the response from your API
* Validate user actions through your own backend systems
For detailed information about general task settings, including task name, header, description, rewards, dependencies, and more, refer to [Task Settings](/tasks/task-settings).
## Create your task
![Select HTTP Request]()
1. From your campaign dashboard, go to the **Quests** tab and click on the quest where you want to add an HTTP Request task.
2. On the quest settings page, click **+ Create new task**.
3. In the Category section, click **General**.
4. In the Groups section, click **Common**.
5. Select **HTTP Request** from the Tasks list.
6. Click **Continue**.
## Task settings
This section allows you to configure the specifics of your HTTP request task.
![Task settings]()
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
**Recurrence**: Control how often users can complete the task:
* **Once** - can only be completed one time per user
* **8h** - available once every eight hours
* **Daily** - available once every 24 hours
* **Weekly** - available once every 7 days
* **Multiple** - stays open and can be completed as many times as needed, one after another, without any waiting time
**Endpoint**: Enter the URL of your API endpoint that Claimr will send the HTTP request to.
* Provide the correct and complete URL, including any necessary paths or parameters
* Example placeholder: "eg. `https://example.com/api/v1/account/balance`"
* This ensures the request reaches the intended destination on your server
#### Using Claimr tags in the endpoint field
Claimr provides tags that can be used to dynamically insert values into the endpoint URL. They are useful when you need to include user-specific or campaign-related information in the request.
Available tags:
* `{{address}}` - the user's account identifier
* `{{cs_address}}` - the checksum address of the user's wallet
* `{{week_start_iso}}` - the start of the week in ISO 8601 format (YYYY-MM-DD)
* `{{week_end_iso}}` - the end of the week in ISO 8601 format
* `{{day_start_iso}}` - the start of the day in ISO 8601 format
* `{{day_end_iso}}` - the end of the day in ISO 8601 format
* `{{quest_id}}` - the unique ID of the current quest
* `{{task_id}}` - the unique ID of the current task
* `{{input}}` - the value entered by the user in the task's input field (if enabled)
**Example:**
```
https://your-api.com/users/{{address}}/tasks/{{task_id}}
```
This endpoint URL will dynamically include the user's account identifier and the current task ID when the HTTP request is sent.
**Request type**: Select the HTTP request method that Claimr will use when communicating with your API.
* **GET** - Retrieve information without modifying server data (e.g., user details, account balances, campaign statistics)
* **POST** - Send data to create or update a resource (e.g., submitting user information, registering accounts, processing payments)
* **PUT** - Update existing data on your API (e.g., modifying user profiles, changing settings, replacing data)
**Headers (optional)**: Add custom headers to enhance the security and functionality of your HTTP requests.
* Field format: **key** (left column) and **value** (right column)
* Use headers to transmit sensitive information like authentication tokens or API keys
* Verify the legitimacy of requests and prevent unauthorized access to your API
* Specify content format (e.g., JSON, XML), caching rules, or other API requirements
**Request body (optional)**: Include a request body in your HTTP request containing data sent to your API endpoint.
* The format depends on the Request type selected
* **POST and PUT requests**: Use JSON to structure the data
* **GET requests**: Request bodies are generally not used
* Claimr tags can also be used in the request body field
**Script (optional)**: Add a JavaScript script to process the response from your API.
* Useful when the response is complex or requires custom logic to determine task completion or calculate rewards
* The script has access to a `response` object containing the data returned by your API
* Use JavaScript code to extract values, perform calculations, or apply conditions
**Return value**: The script must return a value that Claimr will use to determine the task outcome:
* **Boolean (true or false)**: Indicates whether the task is completed
* **Number**: Specifies the number of points to award for completing the task
**Examples:**
Calculating rewards based on transactions:
```javascript theme={"dark"}
return response.tx_count * 10;
```
This calculates points based on the number of transactions. Each transaction is worth 10 points.
Checking for transactions:
```javascript theme={"dark"}
return response.tx_count > 0;
```
This checks if the user has made any transactions. If yes, the task is marked as complete.
**Platform (optional)**: Specify the platform or context for your HTTP request task.
* **For external APIs**: Use a simple identifier (e.g., "Telegram")
* **For Claimr token generation**: Use the format `organization_id::platform_name`
* Example: "ExamplE1::my\_platform"
* This helps Claimr correctly identify the user account and associate it with the task
* **Leave blank** when using Claimr's built-in functionality with web3 as the platform
**Task button text (optional)**: Customize the text displayed on the button that users click to submit their input.
* Example: "Verify"
* Provides clearer instructions or context to the user
**Show input (optional)**: Toggle this on to enable an input field for users to provide data for the task.
* If disabled, the task will not require any user input
**Input label (optional)**: Provide a label for the input field.
* Helps users understand what kind of information they need to enter
* Only appears if "Show input" is enabled
**Input placeholder (optional)**: Provide placeholder text within the input field.
* Provides further guidance or examples to the user
* Only appears if "Show input" is enabled
**Regular Expression (optional)**: Define a regular expression (regex) to validate user input.
* Ensures that users provide data in a specific format or pattern
* Example placeholder: "eg. `^[a-zA-Z0-9_]+$`"
* Example for Twitter links: Validate that input matches the expected format of a Twitter URL
**Response in points (optional)**: Toggle this on to use the API response value directly as the number of points to award.
**Is continuous (optional)**: Toggle this on to enable continuous checking of the task status.
### Return value handling
**HTTP 200 Status Code**: Indicates that the request was successfully received, understood, and accepted by the server.
**Exceptions** (0, "0", false): Even if the status code is 200, the actual content of the response is checked. If the response body is 0, "0", or false, it is treated as a failure or an invalid response despite the successful status code.
**Example use case**: Your application might consider the request successful only if:
* The server responds with a status code of 200
* The response body contains meaningful data (not 0, "0", or false)
### Testing your task
Claimr provides a built-in testing tool to help you verify that your HTTP request task is configured correctly and functions as expected.
Within the task settings, find the **Test** section.
* **Test address**: Enter a test address or value for the HTTP request
* **Test input value**: If your task requires user input, enter a test value
Click **Run script** to simulate task execution.
View the response from your API to verify correct configuration.
### Use cases
**Gift code verification**: Ask users to enter a gift code and use your API to verify its validity.
**Link validation**: Ask users to submit a link to their social media profile or specific webpage and use regex to ensure the link is in the correct format.
**KYC verification**: Check if a user has completed KYC verification on your platform using their wallet address.
### Save and configure
**Back**: Click to return to the previous screen without saving
**Advance settings**: Click to configure additional task settings like dependencies, completion pop-ups, and metadata
**Create task**: Click to save your task and add it to your quest
**Pro tip**: Double-check your endpoint URL and request type before launching. Use the built-in testing tool to verify your API integration works correctly. If using Claimr tags, ensure they are correctly formatted with double curly braces.
### Example: KYC verification task
**Scenario**: Users need to complete KYC verification on your platform.
Users verify their identity through their wallet.
Your platform has an endpoint to check KYC status by wallet address.
* **Endpoint**: `https://your-platform.com/api/kyc/{{address}}`
* **Request Type**: GET
* **Headers**: Include authentication token for API access
* **Dynamic address**: The `{{address}}` tag inserts the user's wallet address
**Flow:**
* When a user attempts the task, Claimr sends a GET request with their wallet address
* Your API checks its database and returns KYC verification status
* Claimr checks the response: if KYC is passed, the task is marked complete
# Common tasks
Source: https://docs.claimr.io/tasks/common-tasks/overview
Flexible tasks for basic actions, onboarding steps, and manual interactions in your quests.
## What are Common tasks?
Common tasks are lightweight, versatile tasks that guide users through actions without requiring external validation, connected accounts, or blockchain verification. Use them for instructional steps, manual confirmations, form submissions, code distribution, and simple user interactions.
**Use Common tasks to:**
* Add manual or instructional steps to your quest
* Confirm actions without collecting evidence
* Collect form-based input or votes
* Distribute invite or gift codes
* Track daily engagement or task streaks
* Integrate custom rewards and routing logic
For detailed information about general task settings, including task header, description, rewards, dependencies, and more, refer to [Task Settings](/tasks/task-settings).
## Available Common tasks
Claimr offers Common tasks for various lightweight interactions. All tasks are found in the **Common** group under the **General** category.
**Engagement & tracking**
* Daily Checkin - User checks in daily to earn rewards
* Tasks Streak - User completes tasks N days in a row
* Custom Events Count - Track how many times a custom event occurred
* Custom Events Value - Track numeric value of a custom event
* Custom Events Streak - Track how many days a custom event occurred in a row
**User input & validation**
* Block - Simple click interaction or confirmation block
* Custom Task - Custom-defined action outside predefined categories
* Secret Code - User must enter a secret code to validate action
* Poll - User participates in a poll or survey
**Forms & data collection**
* Submit a Claimr Form - User fills and submits a Claimr form
* Submit an email - User submits their email address
**Codes & rewards**
* Claim a Reward - User claims earned reward after task completion
* Enter Invite Code - User enters an invite code to join campaign
* Claim Invite Codes - User redeems or distributes invite codes
* Claim Gift Codes - User redeems gift or promo codes
* Custom Reward - Reward defined by custom campaign rules
**Navigation & connections**
* Visit a Link - User must visit a specific external or campaign link
* Referral Link - Track user's referral link visits and signups
* Connect an Account - User logs into the connected app or service
* HTTP Request - Trigger or validate an external HTTP request
**Team & organization**
* Team Selector - User selects a team or group affiliation
## Create a task
1. From your campaign dashboard, go to the **Quests** tab and click on the quest where you want to add a Common task.
2. On the quest settings page, click **+ Create new task**.
![Create new task]()
3. In the Category section, click **General**.
4. In the Groups section, click **Common** and browse the available Common tasks.
5. Select the task that matches your campaign goal and click **Continue**.
### Configure task settings
Each Common task has specific configuration options.
![Common task settings]()
Common settings include:
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward.
**Recurrence** (for applicable tasks): Control how often users can complete the task (once, daily, weekly, multiple).
Click **Advance settings** to configure additional options like dependencies, completion pop-ups, and metadata.
Click **Create task** to save your Common task.
To see how your task will appear to users, click **Preview**. This will open a new tab showcasing three different views: desktop, tablet, and mobile. You can toggle between these views to ensure your task looks and functions seamlessly across all devices.
**Pro tip**: Common tasks work best for onboarding flows, instructional content, or campaign mechanics that don't require external verification. Combine them with verified tasks (X, Web3, etc.) to create comprehensive quest journeys.
## Explore Common task types
Guide users through a simple confirmation click or a piece of text to copy.
Collect a free-form text answer as verification of an off-platform action.
Collect user opinions through simple voting interactions.
Reward users for returning to your quest day after day.
Collect verified user emails with one-time code confirmation.
Reward users for referring others to your campaign.
Reward users for clicking a specified URL.
Integrate your own APIs into your Claimr quests.
# Poll tasks
Source: https://docs.claimr.io/tasks/common-tasks/poll-tasks
Engage users by creating interactive polls within your Claimr campaigns.
## What are Poll tasks?
Collect user opinions through simple voting interactions. Users complete the task by selecting one of several predefined answers. These tasks are often used to increase engagement, personalize content, or gather input during a campaign without requiring any submissions or validation.
**Use Poll tasks to:**
* Collect audience feedback
* Add fun, low-friction interactions to your quest
* Run lightweight surveys or preference checks
* Engage users with decision-making moments
For detailed information about general task settings, including task header, description, rewards, dependencies, and more, refer to [Task Settings](/tasks/task-settings).
## Configure a Poll task
![Poll task type selection]()
To configure a Poll task in Claimr:
1. From your campaign dashboard, go to the **Quests** tab and click on the quest where you want to add a Poll task.
2. On the quest settings page, click **+ Create new task**.
3. In the Category section, click **General**.
4. In the Groups section, click **Common**.
5. Select **Poll** from the Tasks list.
6. Click **Continue**.
## Task settings
![Poll task settings]()
After selecting the task type, configure the following fields:
* **Completion points**: The number of points awarded when the user completes the task.
* **Points Multiplier (%)**: Add a percentage-based bonus to the total reward. For example, if your completion points are set to 100 and your multiplier is 5%, the final reward is 105 points.
* **ID**: A unique identifier that is automatically generated for each answer. You can customize this value if needed.
* **Answer**: The text label shown to users as the voting option.
* **Image (optional)**: Upload an image for each answer. If an image is uploaded, the option will appear as a visual tile; if not, it will appear as a button with text only.
**Pro tip**: Use visual images for answer options to make polls more engaging and easier to scan. Polls work great as icebreakers or to segment users based on their preferences early in your quest.
Click **+ Add Answer** to create more choices. Use the X icon to remove any existing answer. Deleting an answer also removes its image if one is set.
Once you're done:
Click **Create task** to save and add it to your quest right away. You'll now see the task listed in your quest. From there, you can reorder it, delete it, or edit it anytime.
Or, click **Advanced settings** to continue configuring more options specific to the selected task type.
## How Poll tasks appear to users
![Preview mode]()
When users encounter a Poll task, they see:
* A prompt to vote, along with the reward information
* A set of options displayed as either buttons or image tiles, depending on how each answer was configured
Users complete the task by selecting one of the answers. Their vote is recorded immediately, and the reward is granted without any further input.
# Referral tasks
Source: https://docs.claimr.io/tasks/common-tasks/referral-tasks
Set up a referral task to supercharge your campaign's growth.
## What are Referral tasks?
A Referral task incentivizes users to refer others to your Claimr campaign, expanding your reach and growing your community.
**Use Referral tasks to:**
* Increase campaign participation by encouraging users to invite their friends and contacts.
* Reward users for successful referrals, motivating them to spread the word about your campaign.
* Track the effectiveness of your referral program and identify your most influential advocates.
* Expand your audience and reach new potential customers.
* Build a strong community of engaged participants.
For detailed information about general task settings, including task name, header, description, rewards, dependencies, and more, refer to [Task Settings](/tasks/task-settings).
## Task settings
![Task type section]()
To create a Referral link task:
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Common**.
3. Choose **Referral link** from the list of task types.
4. Click **Continue** to proceed to task settings.
Once you've selected both, move on to configuring the specific settings for your referral task.
![Task setting section]()
**Completion points:** Set the base points a user earns once the required referral goal for this task is met.
**Points multiplier (%):** Apply a percentage bonus to the base points (e.g., 5 → +5%).
**Campaign destination URL:** Paste the full link people should share (e.g., your campaign or landing page).
**URL tag:** Choose the query key to append to personal referral links (e.g., `ref` → `...?ref=
`).
**Minimum referrals to complete task:** Enter how many successful referrals are required for this task to complete.
**Points per referral (deprecated):** Set optional XP per each successful referral. This field is marked deprecated and may be ignored in workspaces using campaign-level Referral settings.
**Show referrals XP:** Toggle on to display the potential XP from referrals on the quest card; toggle off to hide it.
**Share Message (optional):** Write the prefilled text that appears when participants share their referral link.
# Submit an email
Source: https://docs.claimr.io/tasks/common-tasks/submit-an-email-tasks
Collect verified user emails by requiring participants to submit their email address and confirm it via a one-time code.
## What are Submit an email tasks?
The Submit an email task allows you to collect verified user emails by requiring participants to submit their email address and confirm it via a one-time code. This ensures that only real users with valid emails can complete the task and earn points.
Use Submit an email tasks to:
* **Grow your email list**: Capture verified user emails for future marketing or community engagement.
* **Gate access to features**: Require email submission before showing high-value tasks or content.
* **Validate users**: Add an extra verification step before rewarding points or tokens.
For detailed information about general task settings, including task name, header, description, rewards, dependencies, and more, refer to our [Task Settings](/tasks/task-settings) article.
## Create a task
To create a Submit an email task:
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Common**.
3. Choose **Submit an email** from the list of task types.
4. Click **Continue** to proceed to task settings.
Once you've selected both, move on to configuring the specific settings for your task.
* **Completion points**: The base value users receive after completing the task. This is shown in the interface and tracked in your analytics.
* **Points multiplier (%) (optional)**: Increases the final reward by a set percentage. For example, if the reward is 100 and the multiplier is 5%, the user will receive 105 points.
* **Add Google Sign-in (optional)**: Enable to let users submit a verified email via Google OAuth.
* **Add Microsoft Sign-in (optional)**: Enable to let users submit a verified email via Microsoft OAuth.
* **Button text (optional)**: Enter the call-to-action label shown on the submit button (e.g., "Submit your email").
* **Don't ask for confirmation (optional)**: Enable to complete the task immediately after submission (no extra confirmation step). Disable to show a confirmation prompt before completion.
## How it looks to users
Once the task is live, users will see a simple form:
* A field prompting them to submit their email (with a placeholder such as e.g., [me@mail.com](mailto:me@mail.com))
* A Submit button (disabled until the user accepts the Terms and Conditions and Privacy Policy)
* A required checkbox for legal consent
After submitting their email:
1. The system sends a one-time code to the provided email address.
2. The user must enter this code to verify their submission.
3. Only after entering a valid code is the task marked as complete and points awarded.
This two-step verification ensures higher quality email capture and minimizes fake entries.
# Visit a link
Source: https://docs.claimr.io/tasks/common-tasks/visit-a-link-task
Reward users for simply clicking on a specified URL, with no proof or submission required.
## What are Visit a link tasks?
Visit a Link tasks in Claimr allow you to reward users for simply clicking on a specified URL. These tasks are perfect for driving traffic to a landing page, referral link, article, external app, or any other destination. Once the user visits the link, the task is considered complete: no proof or submission required.
Use Visit a link tasks to:
* **Drive traffic**: Direct users to campaign pages, partner sites, or custom URLs.
* **Promote engagement**: Highlight specific features, announcements, or calls to action.
* **Integrate referral flows**: Use masked or dynamic links to connect with external reward systems.
For detailed information about general task settings, including task name, header, description, rewards, dependencies, and more, refer to our [Task Settings](/tasks/task-settings) article.
## Create a task
To create a Visit a Link task:
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Web**.
3. Choose **Visit a Link** from the list of task types.
4. Click **Continue** to proceed to task settings.
## Configure a task
Visit a Link tasks offer an extensive set of configuration options. While only the destination link is required, you can fine-tune how the link is displayed and how users interact with it.
#### Required field
* **Completion points**: This is the base value shown at the top of the game UI. It may or may not match the actual reward the user receives.
* **Points multiplier (%)**: Optional bonus that increases the user's final reward by a percentage. For example, if the selected reward is 500 and the multiplier is 10%, the final payout will be 550 points.
* **Recurrence**: Define how often the task can be completed:
* Once
* Daily
* Weekly
* Multiple times (immediate repeat)
* **Link**: The full URL users will be redirected to.
#### Display options
* **Button text**: Customize the button label that users click to visit the link.
* **Timeout (in seconds)**: Add a delay before the task is marked as complete. For example, setting 600 means the task won't be marked complete until 10 minutes after the click.
* **WIP text**: Show a custom "work in progress" message during the waiting period (only applies if a timeout is set).
* **Link text**: Customize how the link is displayed below the button. Useful when you want to show a branded or shortened link instead of the full destination.
* **Hide link**: Toggle this on to remove the link preview entirely and display only the button.
* **Enable copy link button**: Let users copy the link with one click (appears next to the button).
## How it looks to users
Once the task is live, users will see a button prompting them to open the link.
Depending on your settings, they might also see:
* A visible link below the button, with either the raw URL or a custom label.
* A copy icon that allows them to copy the link to clipboard.
* A delay (timeout) before the task can be marked complete.
After clicking the button, the user is taken to your destination URL, and the system logs the action. If you've set a timeout, points will be awarded only after the specified delay.
# Create new task
Source: https://docs.claimr.io/tasks/create-new-task
Add a new task to your quest, select the right type, and configure the core settings before customizing it further in the task-specific settings.
Tasks are what bring your quest to life. They guide users to take specific actions, like joining a Telegram channel, submitting a video, or connecting their wallet, and reward them for completing each step.
In Claimr, you can choose from a wide range of task types across multiple platforms. Whether you're building a social campaign or collecting Web3 data, creating a task is quick and flexible.
From your campaign dashboard, go to the **Quests tab** and click on the quest you'd like to work on. This opens the quest's settings page.
On the quest settings page, click the **+ Create new task** button. This opens the task builder where you'll configure your task.
Start by selecting a task category: Telegram, Web3, Events, etc. Each category includes one or more task types that define what the user needs to do.
After you select the task type:
* A task name will be filled in automatically based on the type you chose.
* You can edit the name if you'd like.
Once you're ready, click **Continue** to move to the setup.
Now you'll set up the core settings for your task.
All tasks include:
* **Completion Points**: How many points a user earns for completing this task.
* **Points multiplier (%)**: Optional bonus to boost the base reward.
* **Recurrence**: Choose whether the task can be completed once, daily, weekly, or multiple times.
Additional settings may appear depending on the task type you selected in the previous step. For example, social tasks may ask for a post link.
At this point, you have two options:
* Click **Create task** to save and add it to your quest right away. You'll now see the task listed in your quest. From there, you can reorder it, delete it, or edit it anytime.
* Or, click **Advanced settings** to continue configuring more options specific to the selected task type.
## Advanced settings
Advanced settings allow you to refine how your task looks, behaves, and connects to other tasks.
### Task header
The main instruction or call-to-action visible to users. Keep it clear and actionable.
### Task completion message
A message users will see after successfully completing the task. Use this to thank them or offer a next step.
### Task tags
Use these tags within the task header and the task completion message to display information about the reward, provide personalized feedback, and acknowledge the user's achievement:
* **`{points}`**: Displays the number of points the user earned for completing the task.
* **`{icon}`**: Displays the icon associated with the points in your campaign.
* **`{xp}`**: Displays the name or label used for points in your campaign.
### Task failure message
A fallback message shown when users fail to complete the task. Keep it friendly and helpful.
### Task description
Add detailed instructions, examples, or links.
Click **+ Create description** and a text field will appear. Enter your description, select the style and the colour of your text, and add links or pictures. Once you're ready, click **Save** to save your changes. Use the **Preview** button (top right) to see how your task will look to participants.
Use the task description to highlight the benefits of completing the task, both for the user and your campaign. Clearly explain the rewards or incentives they can earn.
### Task description tags
Personalize your task descriptions and dynamically display information relevant to each user, making the task experience more engaging and tailored.
**How to use tags**
1. **Insert the tag**: Simply type the tag directly into the text editor when creating or editing the task description.
2. **Save your changes**: Once you've added the tags, save your changes to the task description.
3. **View the result**: When a user views the task, the tags will be dynamically replaced with the corresponding information.
**Available tags:**
* **`{{ref_name}}`**: Displays the name of the user who referred the current user to the campaign (if applicable). This can be useful for creating personalized welcome messages or acknowledging referrals.
* **`{{team_name}}`**: Shows the name of the team the user belongs to. This tag can be used to foster a sense of community and encourage team participation.
* **`{{total_xp}}`**: Displays the user's total accumulated experience points (XP) within the campaign. This tag can be used to show users their overall progress and motivate them to earn more points.
* **`{{xp_alias}}`**: Shows the name or label used for XP in your campaign. This allows you to customize the terminology to match your campaign's theme or branding.
* **`{{participants}}`**: Displays the total number of participants in the campaign. This tag can create a sense of community and encourage friendly competition.
* **`{{evm_address}}`**: Shows the user's connected EVM (Ethereum Virtual Machine) compatible wallet address, if available. This can be useful for displaying personalized information related to the user's wallet or blockchain activity.
Make sure all tags are correctly formatted so they are recognized and processed by Claimr.
### Collapse description
Control the visibility of your task description for participants.
* **Toggle off**: The full description will be visible to anyone viewing your task.
* **Toggle on**: The description will be condensed, showing only a brief summary. Participants will need to click "Show more" to expand and read the full description.
This is a great way to keep your task card looking clean and uncluttered, while still giving interested users the option to learn more.
### Completion pop-up
Keep your users informed by customizing a pop-up message they see immediately after completing a task. Use it to reinforce achievement, give next steps, or drive further engagement.
To set it up:
1. Toggle **Enable completion pop-up**.
2. Click **Create**. This opens a rich-text editor.
3. Add your message - include visuals, formatting, links, or call-to-action content.
4. Click **Save**.
5. Add an **animation visual effect** to make the pop-up more engaging.
### Referral completion points
Set how many points a user earns if someone they referred completes this task.
### Dependencies
Control when a task becomes available. Use checkboxes to link prerequisite tasks.
For detailed information about each setting and tag, read the [Task settings](/tasks/task-settings) article.
Once you're done configuring all fields, click **Create task** to save it and return to your quest overview. You can edit, delete, or reorder tasks anytime from the **Quest page**.
# Discord tasks
Source: https://docs.claimr.io/tasks/discord-tasks
Leverage the power of Discord to grow your community and engage users within your Claimr campaigns.
**Use Discord tasks to:**
* Increase your Discord server members.
* Encourage users to participate in Discord discussions or activities.
* Promote your Discord community within your Claimr campaigns.
* Reward users for joining and interacting with your Discord server.
* Track the effectiveness of your Discord marketing efforts.
For detailed information about general task settings, including task name, header, description, rewards, dependencies, and more, refer to the [Task settings](/tasks/task-settings) article.
## Task type
Choose the specific type of task you want to create for your campaign.
1. Select **Discord** to indicate that the task will be completed with Discord.
2. Considering your aim, select the specific task type from the expanded list.
## Task settings
### Add the Claimr bot to the channel/group
Before creating a Discord task, add the Claimr bot to your Discord server and grant it administrator permissions. This allows the bot to seamlessly interact with your campaign, track task completion, and distribute rewards. Add the bot by clicking on the link provided in the task settings or copy Claimr's bot link and add it to your Discord group/channel: [https://discord.com/oauth2/authorize?client\_id=1034891789640933447\&permissions=1\&scope=bot](https://discord.com/oauth2/authorize?client_id=1034891789640933447\&permissions=1\&scope=bot)
Remember, accuracy is crucial when entering the ID to ensure Claimr can correctly interact with your Discord group or channel.
**Completion points**: Set the base points a user earns once the required event count is reached.
**Points multiplier (%)**: Apply a percentage bonus to the base points (e.g., 5 → +5%).
**Invite link**: Add the invite URL to your Discord server (e.g., [https://discord.gg/](https://discord.gg/)...).
**Is intent? (optional)**: Enable to require a manual confirmation of intent before the task is marked complete.
### Verify Discord roles
**Completion points**: Set the base points a user earns once the required event count is reached.
**Points multiplier (%)**: Apply a percentage bonus to the base points (e.g., 5 → +5%).
**Server Address**: Enter the full server URL (e.g., [https://discord.com/channels/\`SERVER\_ID\`/\`CHANNEL\_ID\`](https://discord.com/channels/`SERVER_ID`/`CHANNEL_ID`)).
**Roles**: Click to choose the role(s) a user must have.
**Fetch roles**: Click to load the current roles from your server.
**Any role from list? (optional)**: Enable to pass the task if the user has any of the fetched roles; keep off to require the specific role(s) selected above.
### Discord server activity (Verified)
**Completion points**: Set the base points a user earns once the required event count is reached.
**Points multiplier (%)**: Apply a percentage bonus to the base points (e.g., 5 → +5%).
**Server Address**: Enter the channel URL where activity is checked (e.g., [https://discord.com/channels/\`SERVER\_ID\`/\`CHANNEL\_ID\`](https://discord.com/channels/`SERVER_ID`/`CHANNEL_ID`)).
**Expected text (optional)**: Require an exact string to appear in the user's message (e.g., brand name or keyword).
**RegEx (optional)**: Define a pattern to allow message variations while still passing (e.g., case, punctuation, emojis).
**Examples**
* **Include a specific emoji**: If you want to include a specific emoji (e.g., ✨), you could use a regular expression like `.*✨.*` to allow for any characters before or after the emoji.
* **Use a specific word or phrase**: If you want to ensure the user adds a specific word or phrase, you could use a regular expression like `^YourKeyword` to match any string that begins with "YourKeyword".
* **Match a specific format**: You can use regular expressions to define more complex patterns, such as email addresses, phone numbers, or dates. For example, to match a valid email address, you could use a regular expression like `[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}`.
**Resources**
* **Regular expression builder**: [https://regex101.com/](https://regex101.com/)
* **AI assistants**
# Form tasks
Source: https://docs.claimr.io/tasks/form-tasks
Set up and utilize Form tasks within your Claimr campaigns to collect user data, enhance engagement, and achieve your campaign objectives.
## What is a Form task?
A Form task allows you to integrate a form into your Claimr quest, enabling you to gather valuable information from users as they progress through your campaign. This information can be used for various purposes, such as lead generation, feedback collection, or user segmentation.
**Use Form tasks to:**
* Gather user information, such as contact details, preferences, and feedback.
* Create interactive experiences, like quizzes, polls, and surveys.
* Streamline data collection by integrating with your existing systems.
* Enhance user segmentation for targeted messaging.
* Boost campaign completion rates with rewards and incentives.
For detailed information about general task settings, including task name, header, description, rewards, dependencies, and more, refer to the [Task settings](/tasks/task-settings) article.
## Task type
Choose the specific type of task you want to create for your campaign.
1. Select **Forms**.
2. Select the specific form task type from the expanded list, considering the platform you use for your forms: Typeform, Tally, or Claimr.
Once you've selected both, move on to configuring the specific settings for your task.
### Form task types explained
* **Polls vs. Quizzes**: Polls gather opinions or feedback from users on a specific question or topic, while quizzes are used to assess users' knowledge or understanding with questions that have correct and incorrect answers.
* **Typeform and Tally** are popular online form-building platforms. Claimr offers direct integration with these platforms, allowing you to seamlessly incorporate their forms into your campaigns.
* **Claimr forms** allows you to use forms that you create directly within your Claimr campaigns. This gives you more flexibility and control over the form's design, questions, and functionality.
To learn more about creating and managing forms in Claimr, see the [Forms](/forms/overview) article.
## Claimr form
Integrate a Claimr form into your quest.
* **Completion points**: Set the number of points awarded when the user successfully completes the form.
* **Points multiplier (%)**: Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Select form**: Choose the Claimr form you want to use for this task from the dropdown menu.
* **Min score (optional)**: Specify the minimum score that users need to achieve on the form to complete the task.
* **Timeout in minutes (optional)**: Set a time limit for completing the form.
* **Add score to XP (optional)**: Enable this toggle to add the user's score on the form to their total XP in the campaign.
* **Required logins**: Select one or several login methods users must complete before they can access this task.
* **Need manual verification? (optional)**: Enable this toggle if the task requires manual verification before it can be marked as complete.
### Submit a Typeform
Integrate any Typeform form into your Claimr quest, useful for collecting specific information or having users complete more complex forms not available as built-in Claimr blocks.
* **Points multiplier (%)**: Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Completion points**: Set the number of points awarded when the user successfully submits the form.
* **Webhook URL**: Add the provided webhook URL to your form to ensure form submissions are properly recorded in Claimr.
* **Form ID**: Enter the unique ID of the form you want to use for this task.
* **Required logins**: Specify which login method users must use to access this task, giving you control over who can participate based on their authentication status. Choose from a variety of popular platforms, including Google, Twitter, Facebook, Discord, Telegram, and more.
Select multiple login options to provide flexibility for your users.
### Typeform Poll
Integrate a Typeform poll into your Claimr quest.
* **Points multiplier (%)**: Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Completion points**: Set the number of points awarded when the user successfully submits the poll.
* **Webhook URL**: Add the provided webhook URL to your Typeform poll to ensure responses are properly recorded in Claimr.
* **Form ID**: Enter the unique ID of your Typeform poll.
* **Required XP (optional)**: Specify the minimum XP that users need to have earned in the campaign to access this task.
* **Required logins**: Select one or several login methods users must complete before they can access this task.
### Typeform Quiz
Integrate a Typeform quiz into your Claimr quest.
* **Points multiplier (%)**: Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Completion points**: Set the number of points awarded when the user successfully completes the quiz.
* **Webhook URL**: Add the provided webhook URL to your Typeform quiz to ensure responses are properly recorded in Claimr.
* **Form ID**: Enter the unique ID of your Typeform quiz.
* **Required Score (optional)**: Specify the minimum score that users need to achieve on the quiz to complete the task.
* **Failed message (optional)**: Customize the message displayed to users if they fail to achieve the required score on the quiz.
* **Required logins**: Select one or several login methods users must complete before they can access this task.
### Submit Tally form
Integrate a Tally form into your Claimr quest.
* **Points multiplier (%)**: Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Completion points**: Set the number of points awarded when the user successfully submits the form.
* **Webhook URL**: Add the provided webhook URL to your Tally form to ensure responses are properly recorded in Claimr.
* **Form ID**: Enter the unique ID of your Tally form.
* **Required logins**: Select one or several login methods users must complete before they can access this task.
### Tally Poll
Integrate a Tally poll into your Claimr quest.
* **Points multiplier (%)**: Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Completion points**: Set the number of points awarded when the user successfully submits the poll.
* **Webhook URL**: Add the provided webhook URL to your Tally poll to ensure responses are properly recorded in Claimr.
* **Form ID**: Enter the unique ID of your Tally poll.
* **Required XP (optional)**: Specify the minimum XP that users need to have earned in the campaign to access this task.
* **Required logins**: Select one or several login methods users must complete before they can access this task.
### Tally Quiz
Integrate a Tally quiz into your Claimr quest.
* **Points multiplier (%)**: Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Completion points**: Set the number of points awarded when the user successfully completes the quiz.
* **Webhook URL**: Add the provided webhook URL to your Tally quiz to ensure responses are properly recorded in Claimr.
* **Form ID**: Enter the unique ID of your Tally quiz.
* **Required score (optional)**: Specify the minimum score that users need to achieve on the quiz to complete the task.
* **Failed message (optional)**: Customize the message displayed to users if they fail to achieve the required score on the quiz.
* **Required logins**: Select one or several login methods users must complete before they can access this task.
Need more information about webhooks? Visit the [Webhooks](/webhooks-guide/overview) article.
# Game tasks
Source: https://docs.claimr.io/tasks/game-tasks
Reward users with randomized outcomes using Scratch Card and Fortune Wheel game tasks to boost retention and engagement.
## What are Game tasks?
Game tasks in Claimr are a fun and engaging way to reward users with randomized outcomes. There are currently two types of game tasks available:
* **Scratch Card Game**: Users scratch to reveal a hidden reward.
* **Fortune Wheel Game**: Users spin a wheel to receive one of several preset rewards.
These tasks are ideal for creating excitement and surprise within your campaign, while still maintaining control over point distribution and frequency.
**Use Game tasks to:**
* **Increase retention**: Offer interactive rewards to keep users coming back.
* **Drive engagement**: Make campaigns more enjoyable with gamified mechanics.
* **Control reward outcomes**: Set multiple reward levels based on your incentive strategy.
## Create a Game task
To create a game task in Claimr:
1. Go to your campaign and click **Create new task**.
2. Under the Category, select **Games**.
3. Choose one of the following task types:
* Scratch Card Game
* Fortune Wheel Game
4. Click **Continue** to proceed to task settings.
## Task settings
You'll now set up the reward structure and interaction logic for the selected game.
* **Completion points**: This is the base value shown at the top of the game UI. It may or may not match the actual reward the user receives.
* **Points multiplier (%)**: Optional bonus that increases the user's final reward by a percentage. For example, if the selected reward is 500 and the multiplier is 10%, the final payout will be 550 points.
* **Recurrence**: Control how often users can complete the task:
* Once - can only be completed one time per user.
* Daily - available once every 24 hours.
* Weekly - available once every 7 days.
* Multiple - stays open and can be completed as many times as needed, one after another, without any waiting time.
* **Rewards**: Add at least two or more point values to activate the game logic. These values will be randomly assigned through the scratch card or wheel spin mechanism.
Without multiple reward options, the game feature will not function as intended.
Once finished, click **Create task** to save and publish.
For additional settings (custom messages, dependencies, referral rewards, and more), see the [Task settings](/tasks/task-settings) article.
## User experience
Here's how it works from the user's side:
* **Scratch Card Game**: The user sees a card with three concealed panels. They scratch all three to reveal their reward.
* **Fortune Wheel Game**: The user spins a wheel with multiple reward segments. Once the wheel stops, they instantly receive the corresponding points.
In both cases:
* The interaction is instant.
* Rewards are automatically granted and require no manual proof.
* The user sees a clear confirmation of their win.
# Gate tasks
Source: https://docs.claimr.io/tasks/gate-tasks
Reward Gate users for connecting their account, trading, holding tokens and depositing onto the exchange.
## What are Gate tasks?
Gate tasks let users connect their Gate account to Claimr through an API key they create on Gate. Claimr then reads the account to verify activity and reward it.
There are 4 Gate task types:
* **Connect Gate Account**: Link a user's Gate account with an API key.
* **Gate Trading Volume**: Track the spot volume the user traded over a time window.
* **Gate Hold Token**: Check that the user holds at least a set amount of a token.
* **Gate Deposit**: Check that the user deposited at least a set amount of a token onto Gate.
The user connects the account once, with the **Connect Gate Account** task. Every other Gate task reuses that key, and asks for one only if none is stored yet.
## Connect Gate account
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Gate**.
4. Select **Connect Gate Account** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
Users create an API key in their Gate account settings and enter it in the task (API key and secret).
Gate doesn't report a key's permissions, so any working key is accepted. Ask users to create a read-only key. Gate also doesn't report KYC status, so there is no Gate KYC task.
Once the key works, Claimr stores it for the user's other Gate tasks and marks the task as complete.
## Gate trading volume
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Gate**.
4. Select **Gate Trading Volume** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Symbol:** The spot trading pair, written the way Gate writes it (for example, `BTC_USDT`). To count several pairs, separate them with commas. Their volumes are added up, so pick pairs that share a quote currency.
* **Volume:** The volume the user must reach, in the pair's quote currency.
* **Maker volume only? (optional):** Count only trades where the user provided liquidity as a maker.
* **Time, h (optional):** Count only trades from the last number of hours.
* **Start at** and **End at (optional):** Count only trades between these dates. With no time window set, the task counts the last 90 days.
* **Is progressive reward? (optional):** Scale the reward with how many times the user reaches the volume. Example: if 10 USDT of volume earns 2 points, 20 USDT earns 4 points.
* **Max progressive amount (optional):** The highest volume used to calculate progressive rewards. Example: with a limit of 100,000 USDT, a user who trades 1,000,000 USDT still receives the reward for 100,000 USDT.
* **Is continuous (optional):** Keep the task open after completion, so users keep earning as their volume grows.
## Gate hold token
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Gate**.
4. Select **Gate Hold Token** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Token:** The token ticker, for example `USDT`.
* **Amount:** The amount of the token the user must hold.
Claimr checks the balance when the user claims the task. Spot balances count, including tokens locked in open orders.
## Gate deposit
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Gate**.
4. Select **Gate Deposit** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Token:** The token ticker, for example `USDT`.
* **Amount:** The amount the user must deposit, in the token.
* **Network (optional):** Count only deposits that arrived on this network. Use the network name as Gate shows it, for example `TRX` or `ETH`. Leave it empty to count any network.
* **Time, h**, **Start at** and **End at (optional):** Count only deposits made in this window.
Only deposits the exchange has credited to the account count. Deposits older than 89 days are never counted, because some exchanges keep no older deposit history.
# Hyperliquid tasks
Source: https://docs.claimr.io/tasks/hyperliquid-tasks
Reward real activity on Hyperliquid, from deposits and trading to staking, vaults and referral sign-ups, verified from the wallet the user connected.
## What are Hyperliquid tasks?
Hyperliquid tasks reward activity on Hyperliquid, read from the Ethereum wallet the user signed in to Claimr with. Users don't need to share an API key. The task card shows their progress towards the target and lets them refresh it.
There are 13 Hyperliquid task types:
* **Hyperliquid Deposit**: USDC the user bridged into Hyperliquid over the window. Transfers from other Hyperliquid accounts don't count.
* **Hyperliquid Trading Volume**: Volume the user traded on Hyperliquid perps and spot.
* **Hyperliquid Trades Count**: How many trades (fills) the user made.
* **Hyperliquid PnL**: Realized profit the user made over the window. Open positions don't count, and fees are shown separately rather than subtracted.
* **Hyperliquid Funding Received**: Net funding the user collected on perps: funding received minus funding paid.
* **Hyperliquid Open Position**: The user holds a perp position right now.
* **Hyperliquid Stop Loss / Take Profit**: The user set a stop loss or take profit order. The order doesn't need to trigger.
* **Hyperliquid Trading Streak**: Consecutive days (UTC) the user traded.
* **Hyperliquid Hold Token**: The user holds at least the set amount of a spot token right now, including tokens locked in open orders. Staked HYPE doesn't count here, use the stake task.
* **Hyperliquid Stake HYPE**: HYPE the user has delegated to validators right now.
* **Hyperliquid Vault Deposit**: The user's equity in Hyperliquid vaults right now.
* **Hyperliquid Referral Code**: The user signed up to Hyperliquid with your referral code. A referral is set once per account and never changes, so this proves the account came through you.
* **Hyperliquid Builder Approval**: The user approved your builder address, the one-time signature a Hyperliquid frontend asks for before it can place orders.
Hyperliquid keeps roughly the 10,000 most recent trades per account. Tasks that sum trades can't count older ones. With no window or market set, **Hyperliquid Trading Volume** reads lifetime volume directly, so it isn't affected.
## Deposit
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Hyperliquid**.
4. Select **Hyperliquid Deposit** from the list of task types.
5. Click **Continue** to proceed to task settings.
USDC the user bridged into Hyperliquid over the window. Transfers from other Hyperliquid accounts don't count.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Amount, USDC:** The amount the user must deposit.
* **Time, h**, **Start at** and **End at (optional):** Count only activity in this window. With none set, all available history counts.
* **Trading link (optional):** A link shown under the progress bar, for example to your market.
* **Claim Button Text**, **Refresh Button Text** and **Hide progress? (optional):** Customize the task card.
* **Is progressive reward?**, **Is continous** and **Max progressive value (optional):** Scale the reward with how many times the user reaches the target, up to the cap.
## Trading volume
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Hyperliquid**.
4. Select **Hyperliquid Trading Volume** from the list of task types.
5. Click **Continue** to proceed to task settings.
Volume the user traded on Hyperliquid perps and spot.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Volume, USD:** The volume the user must reach.
* **Market (optional):** Comma separated coins, for example `BTC, HYPE`. Coins on builder-deployed perp dexes match by name too (`TSLA` matches `xyz:TSLA`). Leave it empty for every coin.
* **Maker volume only? (optional):** Count only trades where the user provided liquidity.
* **Time, h**, **Start at** and **End at (optional):** Count only activity in this window. With none set, all available history counts.
* **Trading link (optional):** A link shown under the progress bar, for example to your market.
* **Claim Button Text**, **Refresh Button Text** and **Hide progress? (optional):** Customize the task card.
* **Is progressive reward?**, **Is continous** and **Max progressive value (optional):** Scale the reward with how many times the user reaches the target, up to the cap.
## Trades count
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Hyperliquid**.
4. Select **Hyperliquid Trades Count** from the list of task types.
5. Click **Continue** to proceed to task settings.
How many trades (fills) the user made.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Count:** How many trades are needed.
* **Market (optional):** Comma separated coins, for example `BTC, HYPE`. Coins on builder-deployed perp dexes match by name too (`TSLA` matches `xyz:TSLA`). Leave it empty for every coin.
* **Min notional, USD (optional):** Trades smaller than this don't count, so the task can't be farmed with tiny trades.
* **Time, h**, **Start at** and **End at (optional):** Count only activity in this window. With none set, all available history counts.
* **Trading link (optional):** A link shown under the progress bar, for example to your market.
* **Claim Button Text**, **Refresh Button Text** and **Hide progress? (optional):** Customize the task card.
* **Is progressive reward?**, **Is continous** and **Max progressive value (optional):** Scale the reward with how many times the user reaches the target, up to the cap.
## PnL
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Hyperliquid**.
4. Select **Hyperliquid PnL** from the list of task types.
5. Click **Continue** to proceed to task settings.
Realized profit the user made over the window. Open positions don't count, and fees are shown separately rather than subtracted.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **PnL, USD:** The realized profit to reach.
* **Market (optional):** Comma separated coins, for example `BTC, HYPE`. Coins on builder-deployed perp dexes match by name too (`TSLA` matches `xyz:TSLA`). Leave it empty for every coin.
* **Time, h**, **Start at** and **End at (optional):** Count only activity in this window. With none set, all available history counts.
* **Trading link (optional):** A link shown under the progress bar, for example to your market.
* **Claim Button Text**, **Refresh Button Text** and **Hide progress? (optional):** Customize the task card.
## Funding received
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Hyperliquid**.
4. Select **Hyperliquid Funding Received** from the list of task types.
5. Click **Continue** to proceed to task settings.
Net funding the user collected on perps: funding received minus funding paid.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Amount, USD:** The net funding to reach.
* **Market (optional):** Comma separated coins, for example `BTC, HYPE`. Coins on builder-deployed perp dexes match by name too (`TSLA` matches `xyz:TSLA`). Leave it empty for every coin.
* **Time, h**, **Start at** and **End at (optional):** Count only activity in this window. With none set, all available history counts.
* **Trading link (optional):** A link shown under the progress bar, for example to your market.
* **Claim Button Text**, **Refresh Button Text** and **Hide progress? (optional):** Customize the task card.
* **Is progressive reward?**, **Is continous** and **Max progressive value (optional):** Scale the reward with how many times the user reaches the target, up to the cap.
## Open position
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Hyperliquid**.
4. Select **Hyperliquid Open Position** from the list of task types.
5. Click **Continue** to proceed to task settings.
The user holds a perp position right now.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Count:** How many open positions are needed.
* **Market (optional):** Comma separated coins, for example `BTC, HYPE`. Coins on builder-deployed perp dexes match by name too (`TSLA` matches `xyz:TSLA`). Leave it empty for every coin.
* **Side (optional):** `LONG` or `SHORT`, empty for either.
* **Min notional, USD** and **Min leverage (optional):** Smaller or lower-leverage positions don't count.
* **Perp dex (optional):** A builder-deployed perp dex by name, for example `xyz`. Use `*` for every dex, or leave it empty for Hyperliquid's main perp dex.
* **Trading link (optional):** A link shown under the progress bar, for example to your market.
* **Claim Button Text**, **Refresh Button Text** and **Hide progress? (optional):** Customize the task card.
## Stop loss / take profit
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Hyperliquid**.
4. Select **Hyperliquid Stop Loss / Take Profit** from the list of task types.
5. Click **Continue** to proceed to task settings.
The user set a stop loss or take profit order. The order doesn't need to trigger.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Count:** How many orders are needed.
* **Kind (optional):** `STOP_LOSS` or `TAKE_PROFIT`, empty for either.
* **Market (optional):** Comma separated coins, for example `BTC, HYPE`. Coins on builder-deployed perp dexes match by name too (`TSLA` matches `xyz:TSLA`). Leave it empty for every coin.
* **Time, h**, **Start at** and **End at (optional):** Count only activity in this window. With none set, all available history counts.
* **Trading link (optional):** A link shown under the progress bar, for example to your market.
* **Claim Button Text**, **Refresh Button Text** and **Hide progress? (optional):** Customize the task card.
## Trading streak
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Hyperliquid**.
4. Select **Hyperliquid Trading Streak** from the list of task types.
5. Click **Continue** to proceed to task settings.
Consecutive days (UTC) the user traded.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Days:** The streak length to reach.
* **Streak mode (optional):** `current` (the default) counts back from today and resets after a day without trading. `longest` is the best streak in the window, earned once and never lost.
* **Min notional, USD (optional):** Trades smaller than this don't keep the streak going.
* **Market (optional):** Comma separated coins, for example `BTC, HYPE`. Coins on builder-deployed perp dexes match by name too (`TSLA` matches `xyz:TSLA`). Leave it empty for every coin.
* **Start at (optional):** Ignore trading before this date.
* **Trading link (optional):** A link shown under the progress bar, for example to your market.
* **Claim Button Text**, **Refresh Button Text** and **Hide progress? (optional):** Customize the task card.
## Hold token
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Hyperliquid**.
4. Select **Hyperliquid Hold Token** from the list of task types.
5. Click **Continue** to proceed to task settings.
The user holds at least the set amount of a spot token right now, including tokens locked in open orders. Staked HYPE doesn't count here, use the stake task.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Token:** The spot token ticker, for example `HYPE`.
* **Amount:** The amount the user must hold.
* **Trading link (optional):** A link shown under the progress bar, for example to your market.
* **Claim Button Text**, **Refresh Button Text** and **Hide progress? (optional):** Customize the task card.
## Stake HYPE
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Hyperliquid**.
4. Select **Hyperliquid Stake HYPE** from the list of task types.
5. Click **Continue** to proceed to task settings.
HYPE the user has delegated to validators right now.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Amount, HYPE:** The amount that must be staked.
* **Trading link (optional):** A link shown under the progress bar, for example to your market.
* **Claim Button Text**, **Refresh Button Text** and **Hide progress? (optional):** Customize the task card.
## Vault deposit
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Hyperliquid**.
4. Select **Hyperliquid Vault Deposit** from the list of task types.
5. Click **Continue** to proceed to task settings.
The user's equity in Hyperliquid vaults right now.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Amount, USD:** The vault equity to reach.
* **Vault address (optional):** One vault, such as HLP or your own. Empty counts every vault.
* **Trading link (optional):** A link shown under the progress bar, for example to your market.
* **Claim Button Text**, **Refresh Button Text** and **Hide progress? (optional):** Customize the task card.
## Referral code
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Hyperliquid**.
4. Select **Hyperliquid Referral Code** from the list of task types.
5. Click **Continue** to proceed to task settings.
The user signed up to Hyperliquid with your referral code. A referral is set once per account and never changes, so this proves the account came through you.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Referral code:** The code the user must have signed up with.
* **Trading link (optional):** A link shown under the progress bar, for example to your market.
* **Claim Button Text**, **Refresh Button Text** and **Hide progress? (optional):** Customize the task card.
## Builder approval
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Hyperliquid**.
4. Select **Hyperliquid Builder Approval** from the list of task types.
5. Click **Continue** to proceed to task settings.
The user approved your builder address, the one-time signature a Hyperliquid frontend asks for before it can place orders.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Builder address:** Your frontend's builder address.
* **Trading link (optional):** A link shown under the progress bar, for example to your market.
* **Claim Button Text**, **Refresh Button Text** and **Hide progress? (optional):** Customize the task card.
# KuCoin tasks
Source: https://docs.claimr.io/tasks/kucoin-tasks
Let users connect their KuCoin account to Claimr, verify KYC status, and track trading volume, holdings and deposits directly from the exchange.
## What are KuCoin tasks?
KuCoin tasks allow users to connect their KuCoin account to Claimr, verify KYC status, and track trading volume directly from the exchange.
These tasks enable Claimr to validate account ownership, confirm user verification, and calculate activity-based rewards using KuCoin data.
There are five main types of KuCoin tasks:
* **Connect KuCoin Account**: Link a user's KuCoin account via API key.
* **KuCoin KYC**: Verify that the connected account has completed KYC verification.
* **KuCoin Trading Volume**: Track the spot volume the user traded over a time window.
* **KuCoin Hold Token**: Check that the user holds at least a set amount of a token.
* **KuCoin Deposit**: Check that the user deposited at least a set amount of a token onto KuCoin.
To set up the task:
1. Go to the Onchain Actions category.
2. Select KuCoin to filter the available options.
3. Considering your aim, select the specific task type.
## Connect KuCoin account
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **KuCoin**.
4. Select **Connect KuCoin Account** from the list of task types.
5. Click **Continue** to proceed to task settings.
Now move on to configuring the specific settings for your task.
* **Completion points:** Set the number of points awarded when the user successfully connects their KuCoin account.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
Users must create an API key in their KuCoin account and connect it to Claimr.
Follow the official KuCoin documentation to generate this key: [How to create API keys on KuCoin?](https://www.kucoin.com/support/360015102174)
Once connected, Claimr automatically verifies the account and marks the task as complete.
## KuCoin KYC
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **KuCoin**.
4. Select **KuCoin KYC** from the list of task types.
5. Click **Continue** to proceed to task settings.
Now move on to configuring the specific settings for your task.
* **Completion points:** Set the number of points awarded when the user's KuCoin account is verified through KYC.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 5% multiplier increases the final reward by 5%.
This task confirms that the connected KuCoin account has successfully completed Know Your Customer (KYC) verification. This serves as an anti-sybil measure, confirming that the user is real and verified through KuCoin.
Claimr doesn't receive KYC data directly, only the verified status.
## KuCoin trading volume
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **KuCoin**.
4. Select **KuCoin Trading Volume** from the list of task types.
5. Click **Continue** to proceed to task settings.
Now move on to configuring the specific settings for your task.
* **Completion points:** Set the number of points awarded when the user reaches the required trading volume.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Symbol:** The spot trading pair, written the way KuCoin writes it (for example, `BTC-USDT`). To count several pairs, separate them with commas. Their volumes are added up, so pick pairs that share a quote currency.
* **Volume:** The volume the user must reach, in the pair's quote currency.
* **Maker volume only? (optional):** Count only trades where the user provided liquidity as a maker.
* **Time, h (optional):** Count only trades from the last number of hours.
* **Start at** and **End at (optional):** Count only trades between these dates. With no time window set, the task counts the last 90 days.
* **Is progressive reward? (optional):** Scale the reward with how many times the user reaches the volume. Example: if 10 USDT of volume earns 2 points, 20 USDT earns 4 points.
* **Max progressive amount (optional):** The highest volume used to calculate progressive rewards. Example: with a limit of 100,000 USDT, a user who trades 1,000,000 USDT still receives the reward for 100,000 USDT.
* **Is continuous (optional):** Keep the task open after completion, so users keep earning as their volume grows.
## KuCoin hold token
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **KuCoin**.
4. Select **KuCoin Hold Token** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Token:** The token ticker, for example `USDT`.
* **Amount:** The amount of the token the user must hold.
Claimr checks the balance when the user claims the task. The funding and trading accounts both count, including tokens locked in orders. Margin balances don't count, because they include borrowed funds.
## KuCoin deposit
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **KuCoin**.
4. Select **KuCoin Deposit** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Token:** The token ticker, for example `USDT`.
* **Amount:** The amount the user must deposit, in the token.
* **Network (optional):** Count only deposits that arrived on this network. Use KuCoin's chain name. Leave it empty to count any network.
* **Time, h**, **Start at** and **End at (optional):** Count only deposits made in this window.
Only deposits the exchange has credited to the account count. Deposits older than 89 days are never counted, because some exchanges keep no older deposit history.
# LinkedIn tasks
Source: https://docs.claimr.io/tasks/linkedin-tasks
Reward users for reposting your LinkedIn content directly from the feed, verified automatically through the LinkedIn embed.
## What are LinkedIn tasks?
LinkedIn tasks in Claimr allow you to reward users for interacting with your LinkedIn content directly from the feed. These tasks are verified automatically once the user connects their LinkedIn account and completes the repost action via Claimr.
**Use LinkedIn tasks to:**
* **Amplify your brand**: Let your followers help spread updates, partnership news, and major announcements within professional circles.
* **Drive engagement**: Boost impressions and reposts on targeted posts to strengthen your organic reach.
* **Automate reward validation**: Eliminate manual review by tracking reposts directly through the LinkedIn embed.
## Create LinkedIn task
Choose the specific type of task you want to create for your campaign.
1. Select **LinkedIn** to indicate that the task will be completed with this specific platform.
2. Considering your aim, select the specific task type from the expanded list.
## Configure task settings
You'll now be able to configure the repost task based on your reward structure and post type:
* **Completion Points**: Set how many points a user earns for reposting the LinkedIn post.
* **Points multiplier (%)**: Add an optional bonus. The multiplier increases the base reward by a percentage. For example, if your completion points are set to 100 and your multiplier is 5%, the final reward is 105 points.
* **Embed Code**: Paste the LinkedIn embed iframe for the post you want users to share. [Need help? Here's how to copy a LinkedIn embed code](https://www.linkedin.com/help/linkedin/answer/a529065/embed-content-from-the-linkedin-feed).
* **Commentary**: Add a brief description for context.
Once you're done:
* Click **Create task** to save and add it to your quest right away. You'll now see the task listed in your quest. From there, you can reorder it, delete it, or edit it anytime.
* Or click **Advanced settings** to continue configuring more options specific to the selected task type.
## User experience
Here's how it looks from the user's side:
1. The user logs in and connects their LinkedIn account.
2. They see the embedded LinkedIn post inside the widget.
3. After clicking Login and Repost, they automatically receive the assigned points.
This process ensures that reposts are verified and trackable, without requiring manual submission.
# MEXC tasks
Source: https://docs.claimr.io/tasks/mexc-tasks
Let users connect their MEXC account to Claimr, verify KYC status, and track trading volume, holdings and deposits directly from the exchange.
## What are MEXC tasks?
MEXC tasks allow users to connect their MEXC account to Claimr, verify KYC status, and track trading volume directly from the exchange.
These tasks enable Claimr to validate account ownership, confirm user verification, and calculate activity-based rewards using MEXC data.
There are five main types of MEXC tasks:
* **Connect MEXC Account**: Link a user's MEXC account via API key.
* **MEXC KYC**: Verify that the connected account has completed KYC verification.
* **MEXC Trading Volume**: Track the spot volume the user traded over a time window.
* **MEXC Hold Token**: Check that the user holds at least a set amount of a token.
* **MEXC Deposit**: Check that the user deposited at least a set amount of a token onto MEXC.
All MEXC tasks belong to the **Onchain Actions** category and the **MEXC** group.
To set up the task:
1. Go to the Onchain Actions category.
2. Select MEXC to filter the available options.
3. Considering your aim, select the specific task type.
## Connect MEXC account
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **MEXC**.
4. Select **Connect MEXC Account** from the list of task types.
5. Click **Continue** to proceed to task settings.
Now move on to configuring the specific settings for your task.
* **Completion points:** Set the number of points awarded when the user successfully connects their MEXC account.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
Users must create an API key in their MEXC account and connect it to Claimr.
Follow the official MEXC documentation to generate your key: [How to create API keys on MEXC?](https://www.mexc.com/announcements/article/mexc-api-opening-tutorial-360055933652)
Once connected, Claimr automatically verifies the account and marks the task as complete.
## MEXC KYC
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **MEXC**.
4. Select **MEXC KYC** from the list of task types.
5. Click **Continue** to proceed to task settings.
Now move on to configuring the specific settings for your task.
* **Completion points:** Set the number of points awarded when the user's MEXC account is verified through KYC.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 5% multiplier increases the final reward by 5%.
This task confirms that the connected MEXC account has successfully completed Know Your Customer (KYC) verification. This serves as an anti-sybil measure, confirming that the user is real and verified through MEXC.
Claimr doesn't receive KYC data directly, only the verified status.
## MEXC trading volume
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **MEXC**.
4. Select **MEXC Trading Volume** from the list of task types.
5. Click **Continue** to proceed to task settings.
Now move on to configuring the specific settings for your task.
* **Completion points:** Set the number of points awarded when the user reaches the required trading volume.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Symbol:** The spot trading pair, written the way MEXC writes it (for example, `BTCUSDT`). To count several pairs, separate them with commas. Their volumes are added up, so pick pairs that share a quote currency.
* **Volume:** The volume the user must reach, in the pair's quote currency.
* **Time, h (optional):** Count only trades from the last number of hours.
* **Start at** and **End at (optional):** Count only trades between these dates. With no time window set, the task counts the last 30 days, the most MEXC keeps.
* **Is progressive reward? (optional):** Scale the reward with how many times the user reaches the volume. Example: if 10 USDT of volume earns 2 points, 20 USDT earns 4 points.
* **Max progressive amount (optional):** The highest volume used to calculate progressive rewards. Example: with a limit of 100,000 USDT, a user who trades 1,000,000 USDT still receives the reward for 100,000 USDT.
* **Is continuous (optional):** Keep the task open after completion, so users keep earning as their volume grows.
## MEXC hold token
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **MEXC**.
4. Select **MEXC Hold Token** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Token:** The token ticker, for example `USDT`.
* **Amount:** The amount of the token the user must hold.
Claimr checks the balance when the user claims the task. Spot balances count, including tokens locked in open orders.
## MEXC deposit
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **MEXC**.
4. Select **MEXC Deposit** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Token:** The token ticker, for example `USDT`.
* **Amount:** The amount the user must deposit, in the token.
* **Network (optional):** Count only deposits that arrived on this network. Use the network name as MEXC shows it. Leave it empty to count any network.
* **Time, h**, **Start at** and **End at (optional):** Count only deposits made in this window.
Only deposits the exchange has credited to the account count. Deposits older than 89 days are never counted, because some exchanges keep no older deposit history.
# OKX tasks
Source: https://docs.claimr.io/tasks/okx-tasks
Reward OKX users for connecting their account, passing KYC, trading, holding tokens and depositing onto the exchange.
## What are OKX tasks?
OKX tasks let users connect their OKX account to Claimr through an API key they create on OKX. Claimr then reads the account to verify activity and reward it.
There are 5 OKX task types:
* **Connect OKX Account**: Link a user's OKX account with an API key.
* **OKX KYC**: Verify that the connected account has completed identity verification.
* **OKX Trading Volume**: Track the spot volume the user traded over a time window.
* **OKX Hold Token**: Check that the user holds at least a set amount of a token.
* **OKX Deposit**: Check that the user deposited at least a set amount of a token onto OKX.
The user connects the account once, with the **Connect OKX Account** task. Every other OKX task reuses that key, and asks for one only if none is stored yet.
## Connect OKX account
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **OKX**.
4. Select **Connect OKX Account** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
Users create an API key in their OKX account settings and enter it in the task (API key, secret and passphrase).
Only read-only keys are accepted. If a key can trade or withdraw, the task refuses it and asks the user for a read-only key, so Claimr never stores a key that could move funds.
Once the key works, Claimr stores it for the user's other OKX tasks and marks the task as complete.
## OKX KYC
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **OKX**.
4. Select **OKX KYC** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
This task confirms that the connected OKX account has completed identity verification. The task passes once OKX reports KYC level 1 or higher.
Claimr doesn't receive KYC data, only whether the account is verified.
## OKX trading volume
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **OKX**.
4. Select **OKX Trading Volume** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Symbol:** The spot trading pair, written the way OKX writes it (for example, `BTC-USDT`). To count several pairs, separate them with commas. Their volumes are added up, so pick pairs that share a quote currency.
* **Volume:** The volume the user must reach, in the pair's quote currency.
* **Maker volume only? (optional):** Count only trades where the user provided liquidity as a maker.
* **Time, h (optional):** Count only trades from the last number of hours.
* **Start at** and **End at (optional):** Count only trades between these dates. With no time window set, the task counts the last 90 days, the most OKX keeps.
* **Is progressive reward? (optional):** Scale the reward with how many times the user reaches the volume. Example: if 10 USDT of volume earns 2 points, 20 USDT earns 4 points.
* **Max progressive amount (optional):** The highest volume used to calculate progressive rewards. Example: with a limit of 100,000 USDT, a user who trades 1,000,000 USDT still receives the reward for 100,000 USDT.
* **Is continuous (optional):** Keep the task open after completion, so users keep earning as their volume grows.
## OKX hold token
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **OKX**.
4. Select **OKX Hold Token** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Token:** The token ticker, for example `USDT`.
* **Amount:** The amount of the token the user must hold.
Claimr checks the balance when the user claims the task. The trading account and the funding account both count. Borrowed funds don't count.
## OKX deposit
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **OKX**.
4. Select **OKX Deposit** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Token:** The token ticker, for example `USDT`.
* **Amount:** The amount the user must deposit, in the token.
* **Network (optional):** Count only deposits that arrived on this network. Use the part of OKX's chain name after the token, for example `TRC20` for `USDT-TRC20`. Leave it empty to count any network.
* **Time, h**, **Start at** and **End at (optional):** Count only deposits made in this window.
Only deposits the exchange has credited to the account count. Deposits older than 89 days are never counted, because some exchanges keep no older deposit history.
# Onchain KYC tasks
Source: https://docs.claimr.io/tasks/onchain-kyc-tasks
Check that users passed KYC on Coinbase or Binance, read from their wallet, with no API key.
## What are onchain KYC tasks?
Onchain KYC tasks confirm that a user passed identity verification at a major exchange, using proof the exchange published onchain to the user's wallet. Users don't share an API key, and Claimr never receives their KYC data.
There are two onchain KYC task types:
* **Coinbase Verified**: The user holds Coinbase's Verified Account attestation on Base.
* **Binance BABT**: The user holds a Binance Account Bound Token on BNB Chain.
Both read the wallets the user signed in to Claimr with. One verified wallet is enough.
## Coinbase verified
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Identity & Proof of Humanity**.
3. In the Groups list, choose **KYC**.
4. Select **Coinbase Verified** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Require Coinbase One? (optional):** Check Coinbase One membership instead of a verified account.
* **Countries (optional):** Comma separated ISO country codes, for example `US, GB`. The user must be verified in one of them.
* **Excluded countries (optional):** Comma separated ISO country codes that can't take part.
* **Verification link (optional):** Where users get verified, for example `https://www.coinbase.com/onchain-verify`.
Coinbase issues these attestations on Base through the Ethereum Attestation Service. Claimr checks that Coinbase issued the attestation to the user's wallet and hasn't revoked it and that it hasn't expired.
The country filters use a separate Coinbase country verification, which fewer users have. Users without it fail the task when either country filter is set. Claimr only compares the country and never stores it.
## Binance BABT
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Identity & Proof of Humanity**.
3. In the Groups list, choose **Binance**.
4. Select **Binance BABT** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Verification link (optional):** Where users mint their BABT, for example `https://www.binance.com/en/babt`.
Only KYC-verified Binance users can mint a Binance Account Bound Token (BABT), and it can't be transferred. Holding one proves a verified Binance account. A BABT that Binance revoked no longer counts.
# Onchain tasks
Source: https://docs.claimr.io/tasks/onchain-tasks
Track blockchain-based events directly in Claimr and automate rewards for verified on-chain activity without requiring API configuration.
## What are Onchain tasks?
The Onchain task type allows you to track blockchain-based events directly in Claimr.
Unlike API tasks that receive events through external API calls, Onchain tasks automatically read blockchain events directly and use them to trigger rewards.
Use Onchain tasks to:
* Reward users for specific blockchain actions recorded on-chain.
* Track event counts or values tied to smart contract interactions.
* Automate rewards for verified on-chain activity without requiring API configuration.
Onchain tasks combine both event-based and value-based logic. They function similarly to API tasks but operate entirely on blockchain event data.
For detailed information about general task settings, including task name, header, description, rewards, dependencies, and more, refer to [Task Settings](/tasks/task-settings).
There are two main types of Onchain tasks you can configure:
* **Onchain Events Count**: Count specific blockchain events.
* **Onchain Events Value**: Track the total numeric value from blockchain events.
## Onchain events count
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Web3**.
4. Then, select **Onchain Events Count** from the list of task types.
5. Click **Continue** to proceed to task settings.
Now move on to configuring the specific settings for your task.
* **Completion points:** Set the number of points awarded once the user reaches the required event count.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. For example, a 5% multiplier increases the final reward by 5%.
* **Recurrence:** Control how often users can complete the task:
* **Once** - can only be completed one time per user.
* **8h** - available once every eight hours.
* **Daily** - available once every 24 hours.
* **Weekly** - available once every 7 days.
* **Multiple** - stays open and can be completed as many times as needed, one after another, without any waiting time.
* **Event category (optional):** Create a tag that helps you organize and group event types.
* **Event name:** Set the exact event identifier being tracked. Example: "Session".
* **Query (optional):** Create a filter that defines which blockchain events should be counted based on specific parameters inside the event data.
Example: `[?age > '21']`
This filter counts only those events where the field "age" is greater than 21.
If no query is set, all received events are counted.
* **Events count:** Set the minimum number of blockchain events required to trigger the reward.
* **Start at (optional):** The date and time when the task becomes active. If set, events that occur before this time are ignored.
* **End at (optional):** The date and time when the task stops being active. If set, events after this time are ignored.
If both **Start at** and **End at** are defined, only events that occur within this period are counted.
* **Claim button text (optional):** Customize the task's claim button. Example: "Get your reward".
* **Refresh button text (optional):** Customize the button that updates task progress. Example: "Update".
#### Optional toggles
* **Hide progress?** Hide progress information from the user interface.
* **Is progressive reward?** Enable scaling of the final reward based on how much the user exceeds the required event value. Example: if the expected value is 100 and the user reaches 300, they receive 3× the reward.
* **Is continuous?** Keep the task open after completion so users can continue earning additional points each time they reach the required value again. This option also affects recurrence logic.
* With daily recurrence and continuous off - the total value is counted across all events.
* With daily recurrence and continuous on - only the value from the last 24 hours is considered.
* **Max progressive value (optional):** Set the highest total value used to calculate progressive rewards. If the user exceeds this number, the reward is capped at the maximum. Example: if the maximum progressive value is 1,000 and the user reaches 10,000, they receive the reward for 1,000 only.
Once you're done:
Click **Create task** to save and add it to your quest right away. You'll now see the task listed in your quest. From there, you can reorder it, delete it, or edit it anytime.
Or click **Advanced settings** to configure additional options specific to this task type.
## Onchain events value
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Web3**.
4. Then, select **Onchain events value** from the list of task types.
5. Click **Continue** to proceed to task settings.
Now move on to configuring the specific settings for your task.
* **Completion points:** The number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
* **Recurrence:** Control how often users can complete the task:
* **Once** - can only be completed one time per user.
* **8h** - available once every eight hours.
* **Daily** - available once every 24 hours.
* **Weekly** - available once every 7 days.
* **Multiple** - stays open and can be completed as many times as needed, one after another, without any waiting time.
* **Event category (optional):** Create a tag that helps you organize and group event types.
* **Event name:** Set the exact blockchain event identifier being tracked. Example: "Transfer".
* **Query (optional):** Configure a path that extracts or filters the numeric value from incoming blockchain events.
Example: `[].data.bet` - extracts the bet value from each event in a list. If no query is set, all event values are included.
* **Events value:** Set the minimum total value across all received events required to trigger the reward.
* **Start at (optional):** Set the date and time when the task becomes active. If set, events that occur before this time are ignored.
* **End at (optional):** Set the date and time when the task stops being active. If set, events after this time are ignored.
If both Start at and End at are defined, only events that occur within this period are counted.
* **Claim button text (optional):** Customize the label for the task's claim button. Example: "Get reward".
* **Refresh button text (optional):** Customize the label for the button that updates task progress. Example: "Update".
**Optional toggles**
* **Hide progress?** Hide progress information from the user interface.
* **Is progressive reward?** Enable scaling of the final reward based on how much the user exceeds the required event value. Example: if the expected value is 100 and the user reaches 300, they receive 3× the reward.
* **Is continuous?** Keep the task open after completion so users can continue earning additional points each time they reach the required value again. This option also affects recurrence logic.
* With daily recurrence and continuous off - the total value is counted across all events.
* With daily recurrence and continuous on - only the value from the last 24 hours is considered.
* **Max progressive value (optional):** Set the highest total value used to calculate progressive rewards. If the user exceeds this number, the reward is capped at the maximum. Example: if the maximum progressive value is 1,000 and the user reaches 10,000, they receive the reward for 1,000 only.
Once you're done:
Click **Create task** to save and add it to your quest right away. You'll now see the task listed in your quest. From there, you can reorder it, delete it, or edit it anytime.
Or click **Advanced settings** to configure additional options specific to this task type.
# Tasks
Source: https://docs.claimr.io/tasks/overview
See what you can do with Claimr tasks and find your way into task creation, task settings, and every task type across social, Web3, forms, and more.
Tasks are the individual actions you want users to complete. Each task represents a specific activity - visiting a page, signing up for your newsletter, connecting a wallet, sharing on social media, or any custom action you define.
## What you can do with Claimr tasks
**Create diverse experiences**: Choose from a wide range of task types to keep your campaigns fresh and engaging. Use pre-built templates for quick setup or create custom tasks with webhooks and API integrations.
**Give clear instructions**: Set up each task with descriptions and step-by-step guidance so users know exactly what to do. Add images or videos to make instructions even clearer.
**Track progress automatically**: Claimr monitors task completion in real-time and gives users instant feedback on their progress. Set validation rules to ensure tasks are completed correctly.
**Reward every action**: Attach points, badges, or exclusive perks to your tasks. Incentivize participation and drive the specific behaviors that help you reach your goals.
**Build structured journeys**: Organize tasks within quests, then group quests into campaigns. This hierarchy creates a clear path for users to follow while helping you achieve your broader objectives.
Add a new task to your quest and configure its core settings.
Configure how users interact with your tasks and what they earn.
Grow your community and engage users through Telegram.
Increase your X presence and drive meaningful interactions.
Boost visibility and engagement with your TikTok content.
Grow your Discord community and reward member activity.
Build a loyal community of subscribers and viewers.
Reward wallet connections, balances, and on-chain activity.
Trigger and verify tasks with custom HTTP requests.
Reward users for bringing new participants into your campaign.
Collect user data and feedback with integrated forms.
# Polymarket tasks
Source: https://docs.claimr.io/tasks/polymarket-tasks
Reward Polymarket activity, from trading volume to positions in your own market, verified from the wallet the user connected.
## What are Polymarket tasks?
Polymarket tasks reward prediction market activity, read from the Ethereum wallet the user signed in to Claimr with. Users don't need to share an API key.
Polymarket trades from a separate wallet that the user's own address controls. Claimr finds it automatically: it asks Polymarket's public profile for it, and also works out each wallet type Polymarket creates for that address. Only the user's own wallets are ever counted.
There are 5 Polymarket task types:
* **Polymarket Trading Volume**: USDC the user traded on Polymarket over the window.
* **Polymarket Trades Count**: How many trades the user made on Polymarket.
* **Polymarket Markets Traded**: How many different markets the user has traded, over their whole history.
* **Polymarket Portfolio Value**: The current value of the user's open positions.
* **Polymarket Hold Position**: The user holds a position in your market right now, worth at least the set amount at the current price. Use it for "take a side on our market" quests.
Polymarket's data API returns at most 5,500 trades per query. For very active traders, set a time window so the count stays accurate.
## Trading volume
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Polymarket**.
4. Select **Polymarket Trading Volume** from the list of task types.
5. Click **Continue** to proceed to task settings.
USDC the user traded on Polymarket over the window.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Volume, USDC:** The volume the user must reach.
* **Markets (optional):** Comma separated market condition IDs. Empty counts every market.
* **Time, h**, **Start at** and **End at (optional):** Count only activity in this window. With none set, all available history counts.
* **Trading link (optional):** A link shown under the progress bar, for example to your market.
* **Claim Button Text**, **Refresh Button Text** and **Hide progress? (optional):** Customize the task card.
* **Is progressive reward?**, **Is continous** and **Max progressive value (optional):** Scale the reward with how many times the user reaches the target, up to the cap.
## Trades count
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Polymarket**.
4. Select **Polymarket Trades Count** from the list of task types.
5. Click **Continue** to proceed to task settings.
How many trades the user made on Polymarket.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Count:** How many trades are needed.
* **Min trade, USDC (optional):** Trades smaller than this don't count.
* **Markets (optional):** Comma separated market condition IDs.
* **Time, h**, **Start at** and **End at (optional):** Count only activity in this window. With none set, all available history counts.
* **Trading link (optional):** A link shown under the progress bar, for example to your market.
* **Claim Button Text**, **Refresh Button Text** and **Hide progress? (optional):** Customize the task card.
* **Is progressive reward?**, **Is continous** and **Max progressive value (optional):** Scale the reward with how many times the user reaches the target, up to the cap.
## Markets traded
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Polymarket**.
4. Select **Polymarket Markets Traded** from the list of task types.
5. Click **Continue** to proceed to task settings.
How many different markets the user has traded, over their whole history.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Count:** How many markets are needed.
* **Trading link (optional):** A link shown under the progress bar, for example to your market.
* **Claim Button Text**, **Refresh Button Text** and **Hide progress? (optional):** Customize the task card.
## Portfolio value
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Polymarket**.
4. Select **Polymarket Portfolio Value** from the list of task types.
5. Click **Continue** to proceed to task settings.
The current value of the user's open positions.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Amount, USDC:** The portfolio value to reach.
* **Trading link (optional):** A link shown under the progress bar, for example to your market.
* **Claim Button Text**, **Refresh Button Text** and **Hide progress? (optional):** Customize the task card.
## Hold position
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select **Onchain Actions**.
3. In the Groups list, choose **Polymarket**.
4. Select **Polymarket Hold Position** from the list of task types.
5. Click **Continue** to proceed to task settings.
The user holds a position in your market right now, worth at least the set amount at the current price. Use it for "take a side on our market" quests.
* **Completion points:** Set the number of points awarded when the user completes the task.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. Example: a 10% multiplier increases the final reward by 10%.
* **Markets:** Comma separated market condition IDs.
* **Outcome (optional):** The outcome the position must be on, for example `Yes`. Empty for any outcome.
* **Amount, USDC:** The position value to reach.
* **Trading link (optional):** A link shown under the progress bar, for example to your market.
* **Claim Button Text**, **Refresh Button Text** and **Hide progress? (optional):** Customize the task card.
# PoW tasks
Source: https://docs.claimr.io/tasks/pow-tasks
Verify user actions by requiring them to submit evidence of completion before earning rewards.
## What are PoW tasks?
Proof of Work (PoW) tasks require users to submit proof that they completed a specific action. You review the submitted evidence and approve or reject it. This verification process ensures users genuinely engage with your content and earn rewards for real effort.
**Use PoW tasks to:**
* Verify that users completed specific actions (watched a video, wrote a review, created content)
* Encourage meaningful interactions that require active participation
* Reduce fraud by deterring bot activity
* Collect and verify user-generated content
For detailed information about general task settings, including task name, header, description, rewards, dependencies, and more, refer to [Task Settings](/tasks/task-settings).
## Task settings
Claimr offers three types of Proof of Work tasks.
1. When creating your task, select **Identity & Proof of Humanity** from the category tabs.
2. Select **Proof of Work** to indicate the task requires the users' proof of work.
3. Select the specific form task type from the list, considering your aim: **Image, Link, or Custom task**.
Once you've selected the task type, move on to configuring the specific settings for your task.
### Custom task
Require users to submit a text-based answer as verification of completing a task.
* **Completion points**: Set the number of points awarded once the user reaches the required event count.
* **Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 5% multiplier increases the final reward by 5%.
* **Recurrence**: Control how often users can complete the task:
* **Once** - can only be completed one time per user
* **8h** - available once every eight hours
* **Daily** - available once every 24 hours
* **Weekly** - available once every 7 days
* **Multiple** - stays open and can be completed as many times as needed, one after another, without any waiting time
All other settings are optional. You can customize the task based on your specific needs.
* **Message**: Enter the question or instruction that users will see and respond to. This can be the prompt for their text answer.
* **WIP Message**: Add a message displayed after users submit their answer while awaiting verification. Example: "You'll get the points once our team checks the task"
* **Auto confirm?**: Toggle this on to automatically approve all answers without manual review. Use with caution - only when confident in the verification method.
* **Long Text?**: Toggle this on if you expect users to provide longer answers. This provides a larger text area for their response.
* **Button text**: Customize the text of the button users click to submit their answer. Example: "Submit my task"
* **Resubmit button text**: Customize the text of the button users click to resubmit if rejected. Example: "Resubmit my task"
### Image as Proof of Work
Require users to upload an image as verification of completing a task.
* **Completion points**: Set the number of points awarded once the user's image is approved.
* **Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 5% multiplier increases the final reward by 5%.
* **Recurrence**: Control how often users can complete the task:
* **Once** - can only be completed one time per user
* **8h** - available once every eight hours
* **Daily** - available once every 24 hours
* **Weekly** - available once every 7 days
* **Multiple** - stays open and can be completed as many times as needed, one after another, without any waiting time
All other settings are optional. You can customize the task based on your specific needs.
* **WIP Message**: Message displayed after users upload their image while awaiting verification.
* **Show text input**: Toggle this on to add a text field alongside the image upload. Useful for collecting context, explanations, or user identification.
* **Text Input Title**: Set the prompt for the text input field. Only appears when "Show text input" is enabled. Example: "Your nickname"
* **Auto confirm?**: Toggle this on to automatically approve all image submissions without manual review. Use with extreme caution - only for tasks where any uploaded image constitutes valid proof.
### Link as Proof of Work
Require users to submit a URL as verification of completing a task.
* **Completion points**: Set the number of points awarded once the user's link is approved.
* **Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 5% multiplier increases the final reward by 5%.
* **Recurrence**: Control how often users can complete the task:
* **Once** - can only be completed one time per user
* **8h** - available once every eight hours
* **Daily** - available once every 24 hours
* **Weekly** - available once every 7 days
* **Multiple** - stays open and can be completed as many times as needed, one after another, without any waiting time
All other settings are optional. You can customize the task based on your specific needs.
* **WIP Message (optional)**: Message displayed after users submit their link while awaiting verification.
* **Regular Expression (optional)**: Enter a regular expression (RegEx) to validate the URL format. If the URL doesn't match the pattern, the submission will be rejected. Example: `.*🚀.*Claimr\.io.*` allows for any characters before or after the emoji and the website link.
If you need help creating a regular expression for your specific requirements, refer to online or AI resources for guidance. **Regular expression builder:** [https://regex101.com/](https://regex101.com/)
* **Auto confirm?**: Toggle this on to automatically approve all link submissions without manual review.
## Save and preview
After configuring your PoW task settings:
**Advance settings**: Click to configure additional task settings like dependencies, completion pop-ups, and metadata
**Create task**: Click to save your task and add it to your quest
To see how your task will appear to users, click **Preview**. This will open a new tab showcasing three different views: desktop, tablet, and mobile. You can toggle between these views to ensure your task looks and functions seamlessly across all devices.
Test your PoW task yourself before launching. Submit proof as a user would to verify the process works smoothly and your instructions are clear.
## Managing PoW submissions
Track and review all PoW task submissions through the Analytics section of your Claimr dashboard.
* **View submissions:** See a list of all users who have submitted proof for a particular PoW task.
* **Review evidence:** Examine the submitted proof (image, link, or answer) provided by each user.
* **Approve or reject:** Manually approve or reject each submission based on whether the user has fulfilled the task requirements.
* **Analytics:** Track approved and rejected submissions.
For more information, read [PoW analytics](/data-analytics/pow-analytics).
# Reddit tasks
Source: https://docs.claimr.io/tasks/reddit-tasks
Reward users for upvoting Reddit posts, boosting visibility and directing attention to your campaigns and announcements.
## What are Reddit tasks?
Reddit tasks in Claimr allow you to reward users for specific actions on Reddit.
**Use Reddit tasks to:**
* **Increase post visibility**: Boost upvotes to push your content higher within subreddit feeds.
* **Support community growth**: Direct attention to announcements, campaigns, or Web3-related discussions.
* **Automate validation**: No need for manual proof - just link the Reddit post and let users engage.
## Task type
Choose the specific type of task you want to create for your campaign.
1. Select **Reddit** to indicate that the task will be completed with this specific platform.
2. Considering your aim, select the specific task type from the expanded list.
## Reddit upvote
Reward users for upvoting a specific Reddit post.
* **Completion points**: Set how many points a user earns after successfully upvoting the Reddit post.
* **Points multiplier (%)**: Add an optional bonus. The multiplier increases the base reward by a percentage. For example, if your completion points are set to 100 and your multiplier is 5%, the final reward is 105 points.
* **Post URL**: Paste the full Reddit post link you want users to upvote.
Once you're done:
* Click **Create task** to save and add it to your quest right away. You'll now see the task listed in your quest. From there, you can reorder it, delete it, or edit it anytime.
* Or, click **Advanced settings** to continue configuring more options specific to the selected task type.
## User experience
Here's how it works for users:
1. The user logs in and clicks the upvote task.
2. They're redirected to the linked Reddit post.
3. After upvoting, Claimr verifies the action, and the user is awarded points automatically.
There's no need for screenshots or links - the task is confirmed based on interaction, providing a seamless and fast user experience.
# SDK tasks
Source: https://docs.claimr.io/tasks/sdk-tasks
Trigger task completion manually from your own system using Claimr's SDK for maximum developer flexibility.
## What is the SDK task?
The SDK task in Claimr is a fully developer-triggered task, designed for maximum flexibility. Unlike other tasks that rely on user-facing actions, SDK tasks are triggered manually from your own system using Claimr's SDK.
Use SDK tasks to:
* Reward users for in-product actions (e.g., completing onboarding, watching a full tutorial, etc.)
* Trigger rewards based on events tracked in your own platform
* Seamlessly integrate Claimr into your existing app or website
## Create an SDK task
To create this task in Claimr:
1. Go to your quest and click **+ Create new task**.
2. Under the Category section, select General.
3. In the Groups list, choose **SDK**.
4. Then, select **SDK FrontEnd** from the list of task types.
5. Click **Continue** to proceed to task settings.
* **Completion points:** Set the number of points awarded once the user reaches the required event count.
* **Points multiplier (%):** Add a percentage-based bonus to the total reward. For example, a 5% multiplier increases the final reward by 5%.
## How the task is completed
To complete an SDK task, call the `complete_task` method of the Claimr SDK from the page that shows the widget:
```js theme={"dark"}
window.claimr.complete_task('TASK_ID');
```
Replace `TASK_ID` with the actual ID of the SDK task. Once the call succeeds, the task is marked as complete and the user is rewarded.
The widget must be loaded when you make the call. If your app renders the widget itself, wait until `window.claimr.is_claimr_ready` is `true`. You can learn more about this method in the [SDK documentation](/sdk-guide).
## Use case example
Let's say you run a crypto wallet app. You want users to receive rewards only after they import an existing wallet and activate two-factor authentication. Once these steps are verified in your system, you can call the `complete_task` method via the Claimr SDK, and the user gets rewarded within the Claimr quest.
# Task settings
Source: https://docs.claimr.io/tasks/task-settings
Configure task info, general settings, rewards, completion pop-ups, dependencies, and advanced settings for any task type.
Each task includes settings that control its behavior, appearance, and rewards. While some settings are universal across all tasks, each task type has unique configuration options based on its specific functionality.
## Before you start
Make sure you have:
* A task created within your quest
* A clear understanding of what action you want users to complete
* Your reward structure planned
## Access task settings
From your campaign dashboard, go to the **Quests** tab and click on the quest containing the task you want to configure.
Locate the task in your quest's task list.
You'll see several action options:
* **Edit**: Open the task settings panel (click this to configure your task)
* **View**: Preview how the task appears to users
* **Copy**: Duplicate the task with all its settings
* **Delete**: Remove the task from your quest
Click **Edit** to open the task settings panel. The panel opens with task-specific settings visible and other sections collapsed.
## Task info
View your task's basic identification details at the top of the settings panel.
**ID**: Your task's unique identifier. Click the copy icon to copy it to your clipboard for API integrations or tracking purposes.
**Name**: The internal name of your task. This auto-fills based on your task type but you can edit it anytime for better organization.
## Task settings
Configure the specific behavior for this task type. These settings vary depending on which task you created.
For detailed configuration options specific to each task type, visit the corresponding task article.
## General settings
Configure how your task appears and communicates with users. Click the **+** icons to expand each option.
### Task header
Click **+ Task header** to add the main instruction users see for this task.
Enter short, action-oriented text that clearly tells users what to do. Keep it concise and direct.
**Task header tags**
Use these tags within the task header to display reward information:
* `{points}`: Displays the number of points users will earn
* `{icon}`: Displays the icon associated with points in your campaign
* `{xp}`: Displays the name or label used for points in your campaign (e.g., "XP", "Tokens")
Example: "Complete this task to earn `{points}` `{xp}`"
Click the trash icon to remove the task header.
### Task completion message
Click **+ Task completion message** to add the message users see after successfully completing the task.
Enter text that acknowledges their achievement and encourages next steps. Use the same tags available in task headers: `{points}`, `{icon}`, `{xp}`
Click the trash icon to remove the completion message.
### Task failure message
Click **+ Task failure message** to add a message shown when users fail to complete the task. Enter friendly, helpful text that guides users to try again.
Click the trash icon to remove the failure message.
### Description
Click **+ Description** to open a rich text editor where you create detailed task instructions.
Add detailed instructions, examples, or links to help users complete the task successfully.
1. Click **+ Description** to open the text editor
2. Enter your description using the formatting tools
3. Select text style and color
4. Add links or images as needed
5. Click **Save** when finished
**Task description**: The main content area where you write your instructions.
**Edit**: Click to modify the description content.
**Animation type**: Select from the dropdown to choose how the description appears.
* "typing" displays the text with a typing animation effect
* "none" shows the description immediately
**Collapse description**: Toggle this on to condense the description initially.
* **Toggle off**: Full description is visible immediately
* **Toggle on**: Description shows condensed with a "Show more" option
This keeps your task card clean while giving interested users access to full details.
Use the task description to highlight benefits, provide clear examples, and include any helpful resources. The clearer your instructions, the higher your completion rate.
### Task description tags
Personalize your task descriptions and dynamically display information relevant to each user, making the task experience more engaging and tailored.
**How to use tags**
Insert the tag directly into the text editor when creating or editing the task description. Simply type the tag (e.g., `{user.name}` or `{user.points}`). Save your changes to the task description.
When a user views the task, the tags automatically replace with the corresponding information specific to that user.
To see all available tags, visit the [Descriptions: creation, usage, tags](/descriptions-creation-usage-tags) article.
Make sure all tags are correctly formatted so they are recognized and processed by Claimr.
### Task banner
Click **+ Task banner** to upload a visual image for your task card.
Upload an eye-catching image that represents your task or campaign theme.
* Click the image thumbnail to edit or replace
* Click the trash icon to remove the banner
* Use high-quality images that match your brand
## Task rewards
Define how users earn points and rewards for completing this task. Click **+** to expand the Task rewards section.
Balance your reward structure to ensure it's both motivating and sustainable for your campaign. Too few points might not incentivize participation, while too many could deplete your reward pool quickly.
### Points
Enter the base reward given when a user successfully completes the task. Consider the effort required. Align with your campaign's point economy.
### Points multiplier
Click **+ Points multiplier** to add a percentage boost to the base reward. Enter a percentage value to increase the points. Example: 100 points with 5% multiplier = 105 total points.
### Referral points
Click **+ Referral Points** to set bonus points for users who referred someone that completes this task. Enter the number of points awarded to the referrer when their invitee completes this task.
Encourage users to share your campaign and reward community growth.
### Rewards
Click **+ Rewards** to set up custom rewards beyond points. Click **+ Create** to open the reward creation dialog where you can:
* Name your reward
* Upload an image
* Choose reward type (Web3 token, Discord role, gift code, etc.)
* Configure network or value as needed
For complete instructions on creating and configuring rewards, check out the [Rewards](/rewards/overview) article.
## Completion pop-up
Show users a custom message immediately after they complete your task. Click **+** to expand the Completion pop-up section.
**Enable completion pop-up**: Toggle this on to activate the completion message.
**Pop-up configuration**: View and edit the message users see after completing the task. Add your message with visuals, formatting, links, or call-to-action content. Click **Save** when finished.
**Animation type**: Select how the pop-up appears from the dropdown menu.
Use the completion pop-up to reinforce achievement, celebrate user success, give next steps, or drive further engagement.
## Dependencies
Control the flow of your campaign by specifying which tasks must be completed before this one becomes accessible. Click **+** to expand the Dependencies section.
**Open after tasks**: Select which tasks users must complete before accessing this task. Selected tasks appear as tags (e.g., "Watch a video"). Click the **x** to remove a dependency.
**Is optional**: Toggle this on to make the prerequisite tasks optional rather than mandatory.
* **Toggle off**: Users must complete all prerequisite tasks
* **Toggle on**: Users can skip prerequisites
Create a strategic path for users to follow by chaining tasks together. This builds engagement progressively and ensures users don't skip important steps.
## Advanced settings
Add internal metadata and tracking information not visible to users. Click **+** to expand the Advanced settings section.
Use it for internal notes, tracking information, or reference IDs. Add any relevant details for your team's use. This information isn't shown to participants.
## Save and preview
After configuring your task settings:
**Save changes**: Click the green **Save changes** button at the bottom to apply all your configurations.
**Close**: Click **Close** to exit without saving changes.
**Preview**: Click **Preview** to see how your task appears to users.
* Opens in a new tab
* Shows desktop, tablet, and mobile views
* Toggle between device types to ensure your task looks and functions seamlessly across all devices
## What to do next
Now that your task is configured:
1. **Test your task** - Complete it yourself to verify everything works
2. **Add more tasks** - Build out your complete quest journey
3. **Monitor performance** in the [Data analytics](/data-analytics/overview) section - Track completion rates and user engagement
# Telegram tasks
Source: https://docs.claimr.io/tasks/telegram-tasks
Connect with your community on Telegram, fostering engagement and growth with Claimr's Telegram task type.
## What is a Telegram task?
Leverage the power of Telegram to grow your community and engage users within your Claimr campaigns.
**Use Telegram tasks to:**
* Increase your Telegram group or channel members.
* Encourage users to participate in Telegram discussions or activities.
* Promote your Telegram community within your Claimr campaigns.
* Reward users for joining and interacting with your Telegram group or channel.
* Track the effectiveness of your Telegram marketing efforts.
For detailed information about general task settings, including task name, header, description, rewards, dependencies, and more, refer to the [Task settings](/tasks/task-settings) article.
## Task type
Choose the specific type of task you want to create for your campaign.
1. Select **Telegram** to indicate that the task will be completed with the Telegram platform.
2. Considering your aim, select the specific task type from the expanded list.
## Join Telegram channel
### Add the Claimr bot to the channel/group
Before creating a Telegram task, it's essential to add the Claimr bot to your Telegram group or channel. This bot will facilitate seamless interaction between your campaign and Telegram, enabling you to track task completion and distribute rewards.
Just copy Claimr's bot link [https://t.me/claimr\_bot](https://t.me/claimr_bot) and add it to your Telegram group/channel **as an admin**.
Remember, accuracy is crucial when entering the ID to ensure Claimr can correctly interact with your Telegram group or channel.
**Completion points**: Set the base points a user earns once the required event count is reached.
**Points multiplier (%)**: Apply a percentage bonus to the base points (e.g., 5 → +5%).
**Group or Channel ID**: Add the numeric Telegram ID for the group/channel you're checking.
* Option 1: Telegram app: open the group/channel, tap its name to view details, copy the ID (if visible), then paste it here.
* Option 2: Web browser: open your group/channel on web.telegram.org; copy the number at the end of the URL (e.g., …/#-123456789).
**Invite link**: Add the join link for your group/channel (e.g., `https://t.me/your_handle` or a generated invite link).
**Is intent? (optional)**: Enable to require a manual confirmation step before the task is marked complete.
## Error handling
While setting up your Telegram task, encountering errors is a possibility. Claimr provides clear error messages to help you troubleshoot and resolve any issues promptly.
1. **Double-check the group/channel ID**: Verify that you've entered the correct Telegram group or channel ID in the task settings.
2. **Confirm bot membership**: Make sure the Claimr bot has been added as a member of your Telegram group or channel. If not, follow the instructions in the Claimr interface to add the bot.
3. **Check privacy settings (Groups)**: For Telegram groups, ensure the group's privacy settings allow the bot to see messages and member lists.
If you continue to experience issues, contact Claimr's support team for further assistance.
# TikTok tasks
Source: https://docs.claimr.io/tasks/tiktok-tasks
Increase your brand's visibility, reach a wider audience, and encourage users to actively engage with your TikTok content by incorporating Claimr tasks.
## What is a TikTok task?
TikTok tasks are interactive activities within Claimr campaigns that leverage the TikTok platform to engage users and drive specific actions. These tasks can range from following your TikTok account and liking or sharing videos to participating in challenges and creating user-generated content.
**Use TikTok tasks to:**
* Increase your TikTok followers.
* Promote your videos and drive engagement.
* Run contests and giveaways on TikTok.
* Increase brand awareness and social media presence.
* Encourage users to participate in challenges or trends on TikTok.
For detailed information about general task settings, including task name, header, description, rewards, dependencies, and more, refer to the [Task settings](/tasks/task-settings) article.
## Task type
Choose the specific type of task you want to create for your campaign.
1. Select **TikTok** to indicate that the task will be completed with the TikTok platform.
2. Considering your aim, select the specific task type from the expanded list.
## Task settings
TikTok tasks in Claimr are **verified**. This means Claimr checks if the user has actually completed the required action before marking the task as complete. This ensures that users genuinely engage with your TikTok content.
### Followers count
Reward users for having a certain number of followers on their TikTok account.
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
**Minimum Followers**: Enter the minimum required number of followers that a user must have on their TikTok account to complete this task.
### Name verification
Reward users for changing their TikTok nickname to a specific value or pattern. This can promote your brand, campaign, or event or encourage users to align their TikTok identity with your community.
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
**Expected text (optional)**: Enter the exact text that must appear in the user's submission to mark the task as complete. For example, #Claimr or Check out my latest campaign.
According to TikTok, users can change their nicknames once every 7 days. [TikTok's Help Center](https://support.tiktok.com/en/getting-started/setting-up-your-profile/changing-your-nickname) states that nicknames must adhere to their Community Guidelines.
**RegEx (optional)**: Add a regular expression pattern to validate user submissions using advanced matching logic. For example, `^#Claimr\b` to require that the text starts with #Claimr.
### Bio verification
Reward users for adding specific information to their TikTok bio. This can be useful for promoting your brand, campaign, or event, or for encouraging users to align their bio with your community.
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
**Expected text (optional)**: Enter the text users need to include in their TikTok bio. This could be your brand name, a campaign slogan, any other specific text, or emojis.
**RegEx (optional)**: Add a regular expression pattern to validate user submissions using advanced matching logic.
**Example:**
If you want users to include a specific emoji or a link to your website in their bio, you could use a regular expression like `.*🚀.*Claimr\.io.*` to allow for any characters before or after the emoji and the website link.
**Resources**
* **Regular expression builder**: [https://regex101.com/](https://regex101.com/)
* **AI assistants**
Regular expressions can be complex. If you need help creating a regular expression for your specific requirements, refer to online resources for guidance.
### Submit video
Reward users for submitting videos on TikTok. This task type helps encourage users to create and share content related to your campaign, brand, or product.
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
**Recurrence**: Control how often users can complete the task:
* Once - can only be completed one time per user.
* Daily - available once every 24 hours.
* Weekly - available once every 7 days.
* Multiple - stays open and can be completed as many times as needed, one after another, without any waiting time.
**Need approval? (optional)**: Turn on to require manual review and approval before the task is marked as complete.
### Post video
Reward users for posting videos on TikTok. This task type helps encourage users to create and share content related to your campaign, brand, or product.
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
# UGC tasks
Source: https://docs.claimr.io/tasks/ugc-tasks
Reward users for creating and sharing content across social platforms like X, TikTok, and YouTube.
## What are UGC tasks?
User-Generated Content (UGC) tasks reward users for creating and sharing content across social platforms. These tasks encourage users to produce posts, videos, images, or links related to your campaign and optionally reward them based on content performance.
**Use UGC tasks to:**
* Encourage content creation across platforms like X (Twitter), TikTok, and YouTube
* Track post performance through impressions or views
* Reward top contributors based on engagement metrics
* Collect user-generated images and links
For detailed information about general task settings, including task name, header, description, rewards, dependencies, and more, refer to [Task Settings](/tasks/task-settings).
## Configure UGC task
When creating your task, select **User Generated Content** from the Groups section in the General category.
You'll see the following task options:
* **Submit X post** - User submits their own X post for review
* **Submit TikTok video** - User submits a TikTok video link for validation
* **Submit YouTube video** - User submits a YouTube video link for approval
* **UGC image** - User uploads an image as proof or content
* **UGC link** - User submits a link as user-generated content
Select the task type that matches your campaign needs, then click **Continue**.
## Submit X post
Reward users for submitting a post on the X platform. This task type encourages users to create and share content related to your campaign, brand, or product on X.
**Completion points**: Set the base points a user earns once the required event count is reached.
**Points multiplier (%)**: Apply a percentage bonus to the base points (e.g., 5 → +5%).
**Recurrence**: Control how often the same user can complete this task:
* **Once** - can be completed one time per user
* **8h** - available once every eight hours
* **Daily** - available once every 24 hours
* **Weekly** - available once every 7 days
* **Multiple** - stays open and can be completed back-to-back with no waiting time
**Expected text (optional)**: Require an exact string that must appear in the user's X post text.
**RegEx (optional)**: Use a regular expression (RegEx) to define a pattern the post must match. This is useful for allowing different spellings, capitalizations, or the inclusion of emojis. Example: `.*🚀.*Claimr\.io.*` allows for any characters before or after the emoji and the website link.
**Should contain image? (optional)**: Enable to require the X post to include at least one image.
**Need approval? (optional)**: Enable to require manual review and approval before points are awarded.
## Submit TikTok video
Reward users for submitting videos on TikTok. This task type encourages users to create and share content related to your campaign, brand, or product.
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
**Recurrence**: Control how often users can complete the task:
* **Once** - can only be completed one time per user
* **Daily** - available once every 24 hours
* **Weekly** - available once every 7 days
* **Multiple** - stays open and can be completed as many times as needed, one after another, without any waiting time
**Need approval? (optional)**: Turn on to require manual review and approval before the task is marked as complete.
## Submit YouTube video
Reward users for submitting videos on YouTube. This task type encourages users to create and share content related to your campaign, brand, or product.
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
**Recurrence**: Control how often users can complete the task:
* **Once** - can only be completed one time per user
* **Daily** - available once every 24 hours
* **Weekly** - available once every 7 days
* **Multiple** - stays open and can be completed as many times as needed, one after another, without any waiting time
**Need approval? (optional)**: Turn on to require manual review and approval before the task is marked as complete.
## UGC image
User uploads an image as proof or content.
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 5% multiplier increases the final reward by 5%.
**Recurrence**: Control how often users can complete the task:
* **Once** - can only be completed one time per user
* **8h** - available once every eight hours
* **Daily** - available once every 24 hours
* **Weekly** - available once every 7 days
* **Multiple** - stays open and can be completed as many times as needed, one after another, without any waiting time
**Need approval? (optional)**: Turn on to require manual review and approval before points are awarded.
## UGC link
User submits a link as user-generated content.
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 5% multiplier increases the final reward by 5%.
**Recurrence**: Control how often users can complete the task:
* **Once** - can only be completed one time per user
* **8h** - available once every eight hours
* **Daily** - available once every 24 hours
* **Weekly** - available once every 7 days
* **Multiple** - stays open and can be completed as many times as needed, one after another, without any waiting time
**Regular Expression (optional)**: Enter a regular expression (RegEx) to validate the URL format. Example: `^(https?:\/\/)?(www\.)?([x|twitter]\.com)(\/.*)$` to allow for any characters before or after the URL pattern.
**Need approval? (optional)**: Turn on to require manual review and approval before points are awarded.
## How "Multiple" setting works for users
When a UGC task is set to recurrence = multiple, users see a gallery sourced from their connected account and the history of sent content.
Users can:
* Browse their previous submissions
* Select content from their connected platform
* Submit new content multiple times
* Track which content has already been submitted
## Save and preview
After configuring your UGC task settings:
**Advance settings**: Click to configure additional task settings like dependencies, completion pop-ups, and metadata. To find out more, read our [Task Settings](/tasks/task-settings) article.
**Create task**: Click to save your task and add it to your quest
**Pro tip**: Enable "Need approval?" for tasks where content quality matters. This lets you review submissions before awarding points and ensures brand-appropriate content.
# Connect a wallet
Source: https://docs.claimr.io/tasks/web3-tasks/connect-a-wallet
Incentivize users to connect their cryptocurrency wallets to your Claimr campaign.
This task is often a crucial first step for enabling users to participate in Web3 activities, such as claiming tokens, minting NFTs, or interacting with decentralized applications (dApps).
### Before you start
Make sure you have:
* A quest created within your campaign
* A clear understanding of which blockchain networks you want to support
* A message prepared for wallet signature verification
### Create the task
Follow the steps in [Web3 tasks](/tasks/web3-tasks/overview) to navigate to the task creation screen, select **Web3** from the Groups section, and choose **Connect a Wallet**.
### Task settings
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
**Message (optional)**: Enter the message that the user will be asked to sign when connecting their wallet. This signature verification process ensures that the user truly owns the wallet they are connecting.
This message is a crucial part of the wallet connection process and helps prevent unauthorized access. Example: "I hereby verify that I own this wallet and am authorizing it to connect to this Claimr campaign."
**Network selection toggles**: Choose the specific blockchain networks you want to allow users to connect their wallets to.
**Wallet Name (optional)**: Specify the name of the wallet provider you want to use for this task.
### Helpful tips
* Provide clear and concise instructions on how to connect a wallet in your task description
* Reassure users about the security of their wallet connection and emphasize that you will not have access to their private keys
* Enable multiple networks if your campaign supports cross-chain participation
# Link3 balance
Source: https://docs.claimr.io/tasks/web3-tasks/link3-balance
Verify and reward users based on their balance of Link3 tokens.
Link3 is a Web3 social network that utilizes NFTs for profile pictures and offers various social features. Encourage users to join the Link3 platform, participate in its ecosystem, or reward those who already hold Link3 tokens.
### Before you start
Make sure you have:
* A quest created within your campaign
* Knowledge of which blockchain network(s) support Link3 tokens
* A minimum Link3 token balance threshold determined
### Create the task
Follow the steps in [Web3 tasks](/tasks/web3-tasks/overview) to navigate to the task creation screen, select **Web3** from the Groups section, and choose **Link3 Balance**.
### Task settings
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
**Recurrence**: Control how often users can complete the task:
* **Once** - can only be completed one time per user
* **8h** - available once every eight hours
* **Daily** - available once every 24 hours
* **Weekly** - available once every 7 days
* **Multiple** - stays open and can be completed as many times as needed, one after another, without any waiting time
**Networks**: Select the blockchain network on which Link3 tokens are issued.
* Click **Add network** to add multiple networks if Link3 is available on multiple chains
**Amount**: Specify the minimum Link3 token balance required to complete the task. Example: Entering "100" would require users to hold at least 100 Link3 tokens in their wallet on the chosen network(s).
### Pro tips
* Provide a brief introduction to Link3 and its features within the task description for users who might not be familiar with the platform
* Include a link to your project's official Link3 profile to encourage users to connect with you there
* Align your reward structure with the value of holding Link3 tokens and participating in the Link3 ecosystem
* Consider offering exclusive access to events, content, or communities on the Link3 platform
# Mint an NFT (1155)
Source: https://docs.claimr.io/tasks/web3-tasks/mint-an-nft-1155
Incentivize users to mint an NFT using the ERC-1155 standard.
ERC-1155 is a token standard that allows for both fungible and non-fungible tokens to be created within the same contract. This means it can be used to represent unique NFTs (like ERC-721) as well as semi-fungible tokens or multiple copies of the same NFT.
### Before you start
Make sure you have:
* A quest created within your campaign
* The ERC-1155 NFT collection contract address
* The specific Token ID you want users to mint
* Knowledge of which blockchain network the NFT is deployed on
* Mint fee amount (if applicable)
### Create the task
Follow the steps in [Web3 tasks](/tasks/web3-tasks/overview) to navigate to the task creation screen, select **Web3** from the Groups section, and choose **Mint an NFT (EVM 1155)**.
### Task settings
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
**Recurrence**: Control how often users can complete the task:
* **Once** - can only be completed one time per user
* **8h** - available once every eight hours
* **Daily** - available once every 24 hours
* **Weekly** - available once every 7 days
* **Multiple** - stays open and can be completed as many times as needed, one after another, without any waiting time
**Network**: Select the blockchain network on which the NFT will be minted.
* Click the first dropdown to choose a network (e.g., Ethereum)
* Click the second dropdown to select Mainnet or Testnet
**Contract Address**: Enter the contract address of the ERC-1155 NFT collection or project.
* This is the specific contract where the ERC-1155 tokens are deployed
* Example placeholder: "eg. 0x0d5cc359f67076b5804e2b32aad75bd8631cd12b"
**Has server signature support (optional)**: Toggle this on if your NFT minting process requires server-side signature support. This is an advanced security feature that protects your NFT mint from unauthorized minting.
To utilize this feature, you will need a special contract template. Request it from the Claimr support team. See the explanation in the [ERC-721 section](/tasks/web3-tasks/mint-an-nft-721) for why server-side signatures are important.
**Token Id**: Specify the ID of the token within the ERC-1155 contract that you want users to mint. Each ID represents a different token type within the same contract.
**Amount**: Specify the number of tokens with the specified ID that users need to mint to complete the task. This allows users to mint multiple copies of the same token.
**Mint Fee (optional)**: If there's a fee associated with minting the NFT, specify the amount here.
### Pro tips
* Provide clear and concise instructions on how to mint the ERC-1155 NFT, including any necessary steps like connecting a wallet, approving transactions, or paying minting fees
* Specify the NFT collection or project name, the token ID, the benefits of owning the NFT, and any relevant links (e.g., to the minting website or marketplace) in the task description
* Consider displaying images or previews of the NFTs within the task description to make it more engaging
# Mint an NFT (721)
Source: https://docs.claimr.io/tasks/web3-tasks/mint-an-nft-721
Incentivize users to mint an NFT using the ERC-721 standard.
Use this task to drive engagement with your NFT projects, rewarding early adopters, or encouraging participation in exclusive communities or events.
### Before you start
Make sure you have:
* A quest created within your campaign
* The NFT collection contract address
* Knowledge of which blockchain network the NFT is deployed on
* Mint fee amount (if applicable)
### Create the task
Follow the steps in [Web3 tasks](/tasks/web3-tasks/overview) to navigate to the task creation screen, select **Web3** from the Groups section, and choose **Mint an NFT (EVM 721)**.
### Task settings
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
**Recurrence**: Control how often users can complete the task:
* **Once** - can only be completed one time per user
* **8h** - available once every eight hours
* **Daily** - available once every 24 hours
* **Weekly** - available once every 7 days
* **Multiple** - stays open and can be completed as many times as needed, one after another, without any waiting time
**Network**: Select the blockchain network on which the NFT will be minted.
* Click the first dropdown to choose a network (e.g., Ethereum)
* Click the second dropdown to select Mainnet or Testnet
**Contract Address**: Enter the contract address of the NFT collection or project.
* This is the address where the NFT smart contract is deployed
* Example placeholder: "eg. 0x0d5cc359f67076b5804e2b32aad75bd8631cd12b"
**Has server signature support (optional)**: Toggle this on if your NFT minting process requires server-side signature support.
This is an advanced security feature that protects your NFT mint from unauthorized minting by external users. To utilize this feature, you will need a special contract template. Request it from the Claimr support team.
**Why server-side signature is important**: All data and events on the blockchain are publicly accessible. This means that anyone with technical knowledge can potentially exploit the NFT minting process. They could bypass your campaign's tasks and mint NFTs directly to their own wallets. Claimr's server-side signature adds a layer of protection. It utilizes a secure server-side wallet to sign a special message that is verified within the NFT contract. This ensures that only authorized mints initiated through your Claimr campaign can be successful.
**Allow multiple mints? (optional)**: Toggle this on if you want to allow users to mint multiple NFTs within this task. By default, a wallet is typically allowed to mint a specific token only once. With this option enabled, the token can be minted multiple times across different tasks (they must be different tasks).
**Mint Fee (optional)**: If there's a fee associated with minting the NFT, specify the amount here.
**Is SB Token? (optional)**: Toggle this on if the NFT being minted is an SB (soul-bound) token.
This option allows users to mint the token again even if they have already minted it previously but not within your campaign. Claimr will check the user's balance of this token. If it's greater than 0, the task will be marked as completed after the user clicks Complete.
**Wallet already connected? (optional)**: Toggle this on if your campaign is running in a web browser environment where the user's wallet is already connected via SDK (Software Development Kit).
This ensures a smooth and efficient minting experience for users in specific web browser environments where wallet connections are managed externally via SDK.
Typically, when a user encounters an NFT minting task in Claimr, they are prompted to connect their wallet before proceeding. By enabling this toggle, Claimr will recognize the existing wallet connection and bypass the connection prompt, directly initiating the minting process.
**Ignore platform settings (optional)**: Toggle this on to ignore platform-level settings for this task.
**Internal reward id (optional)**: Enter an internal identifier for tracking purposes. This is for your internal use and not visible to users.
### Pro tips
* Provide clear and concise instructions on how to mint the NFT, including any necessary steps like connecting a wallet, approving transactions, or paying minting fees
* Specify the NFT collection or project name, the benefits of owning the NFT, and any relevant links (e.g., to the minting website or marketplace) in the task description
* Consider displaying images or previews of the NFTs within the task description to make it more engaging
# NFT balance
Source: https://docs.claimr.io/tasks/web3-tasks/nft-balance
Verify and reward users based on the number of NFTs they hold in their cryptocurrency wallet.
Use this task to foster a sense of community among your NFT holders and encourage them to participate in exclusive events or activities.
### Before you start
Make sure you have:
* A quest created within your campaign
* The NFT collection contract address(es)
* A minimum NFT count determined
### Create the task
Follow the steps in [Web3 tasks](/tasks/web3-tasks/overview) to navigate to the task creation screen, select **Web3** from the Groups section, and choose **NFT Balance**.
### Task settings
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
**Recurrence**: Control how often users can complete the task:
* **Once** - can only be completed one time per user
* **8h** - available once every eight hours
* **Daily** - available once every 24 hours
* **Weekly** - available once every 7 days
* **Multiple** - stays open and can be completed as many times as needed, one after another, without any waiting time
**Networks**: Select the blockchain network on which the NFT collection is issued.
* Click **Add network** to add multiple networks
* Enter the NFT contract address in the field provided. This ensures that the task accurately checks the user's NFT holdings across all relevant networks
**Amount**: Specify the minimum number of NFTs required to complete the task.
* Example: Entering "1" would require users to hold at least 1 NFT from the specified collection in their wallet on the chosen network(s). The NFT count is cumulative across all networks.
**Is ERC1155?**: Toggle this on if the NFT collection uses the ERC-1155 standard instead of ERC-721.
* ERC-721: Standard for unique, non-fungible tokens
* ERC-1155: Standard that supports both fungible and non-fungible tokens
### Pro tips
* Clearly specify the NFT collection or project name and the contract address in the task description to avoid confusion
* Consider displaying images or previews of the NFTs within the task description to make it more engaging
* Use this to gate access to exclusive content, events, or communities for NFT holders
# Web3 tasks
Source: https://docs.claimr.io/tasks/web3-tasks/overview
Connect your Claimr campaigns to the blockchain and drive engagement through on-chain actions.
## What are Web3 tasks?
Web3 tasks reward users for performing on-chain actions like connecting wallets, holding tokens, minting NFTs, or completing blockchain transactions. These tasks verify cryptocurrency wallet activity and blockchain interactions automatically.
**Use Web3 tasks to:**
* Verify wallet ownership and encourage wallet connections
* Reward users for holding specific tokens or NFTs
* Track on-chain activity like transactions, swaps, or contract deployments
* Build blockchain-native communities through verified on-chain participation
* Gate access based on wallet balance or transaction history
For detailed information about general task settings, including task header, description, rewards, dependencies, and more, refer to [Task settings](/tasks/task-settings).
## Available Web3 tasks
Claimr offers Web3 tasks across several categories. All tasks are found in the **Web3** group under the **Onchain Actions** category.
#### Wallet & balance verification
* [Connect a Wallet](/tasks/web3-tasks/connect-a-wallet) - User connects their crypto wallet to the app
* [Wallet Balance](/tasks/web3-tasks/wallet-balance) - Check if user wallet balance meets required threshold
* [Token Balance](/tasks/web3-tasks/token-balance) - Verify token balance in user's wallet
* [NFT Balance](/tasks/web3-tasks/nft-balance) - Verify that user holds specific NFTs
* [Link3 Balance](/tasks/web3-tasks/link3-balance) - Check Link3 profile balance or engagement level
#### Transaction tracking
* [Transactions Count](/tasks/web3-tasks/transactions-count) - Check number of on-chain transactions for a user
* [Verify Transactions](/tasks/web3-tasks/verify-transactions) - Verify that user made a blockchain transaction
* Verify EVM Token Transfer - Verify that user sent or received EVM tokens
#### On-chain events
* Onchain Events Count - Count specific blockchain events
* Onchain Events Value - Track total value from on-chain events
* Onchain Events Streak - Track how many days a blockchain event occurred in a row
#### NFT actions
* [Mint an NFT (EVM 721)](/tasks/web3-tasks/mint-an-nft-721) - User must mint an NFT on-chain (ERC-721 standard)
* [Mint an NFT (EVM 1155)](/tasks/web3-tasks/mint-an-nft-1155) - User mints an ERC-1155 NFT
* Mint a Random NFT (EVM 721) - User mints a randomly generated NFT
* Mint a Zora NFT - User mints a Zora NFT collection item
* Swap an NFT (EVM 721) - Verify that user completed an NFT swap transaction
#### Smart contracts
* Deploy EVM Contracts - User deploys a smart contract on EVM network
## Create a task
From your campaign dashboard, go to the **Quests** tab and click on the quest where you want to add a Web3 task.
On the quest settings page, click **+ Create new task**.
In the Category section, click **Onchain Actions**.
In the Groups section, click **Web3** and browse the available Web3 tasks.
Select the task that matches your campaign goal and click **Continue**.
## Configure task settings
Each Web3 task has specific configuration options. Common settings include:
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward.
**Network/Chain**: Select which blockchain network to verify (Ethereum, Polygon, Base, etc.)
**Contract address** (for token/NFT tasks): Enter the smart contract address to verify
**Minimum amount** (for balance tasks): Set the required threshold
Click **Advance settings** to configure additional options like dependencies, completion pop-ups, and metadata.
Click **Create task** to save your Web3 task.
To see how your task will appear to users, click **Preview**. This will open a new tab showcasing three different views: desktop, tablet, and mobile. You can toggle between these views to ensure your task looks and functions seamlessly across all devices.
**Pro tip**: Web3 tasks automatically verify on-chain activity, so users can't fake completion. This makes them ideal for gating high-value rewards or building verified Web3 communities.
# Token balance
Source: https://docs.claimr.io/tasks/web3-tasks/token-balance
Verify and reward users based on the balance of a specific token they hold in their cryptocurrency wallet.
Use this task to incentivize users to hold your project's token, reward early adopters, or encourage participation in token-gated communities or events.
### Before you start
Make sure you have:
* A quest created within your campaign
* The token contract address(es) for the networks you want to support
* A minimum token balance threshold determined
### Create the task
Follow the steps in [Web3 tasks](/tasks/web3-tasks/overview) to navigate to the task creation screen, select **Web3** from the Groups section, and choose **Token Balance**.
### Task settings
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
**Recurrence**: Control how often users can complete the task:
* **Once** - can only be completed one time per user
* **8h** - available once every eight hours
* **Daily** - available once every 24 hours
* **Weekly** - available once every 7 days
* **Multiple** - stays open and can be completed as many times as needed, one after another, without any waiting time
**Networks**: Select the blockchain network on which the token is issued. Click **Add network** to add multiple networks. For each network, you'll need to specify the **Contract Address** of the token on that specific network. This ensures that the task accurately checks the user's token balance across all relevant networks.
**Amount**: Specify the minimum total token balance required to complete the task, across all specified networks. Example: If your token is "XYZ" and you want users to hold at least 10 XYZ tokens in total (across all networks they've added), enter "10". The balance is cumulative across all networks.
**Is progressive reward? (optional)**: Toggle this on if you want to offer increasing rewards based on the user's total token balance. This works by setting a base reward amount for the minimum token balance and then multiplying that reward for each multiple of the minimum balance.
Example: If the minimum balance is 5 tokens and the base reward is 10 points, a user with 12 tokens would receive 20 points (2× the base reward since they have more than twice the minimum balance).
**Is continous (optional)**: Toggle this on to enable continuous checking of the token balance.
**Max progressive amount (optional)**: Set the maximum amount for progressive rewards. This field appears when "Is progressive reward?" is enabled.
### Helpful tips
* Use this task to foster a sense of community among your token holders and encourage them to actively participate in your project
* Explain why you're checking token balances and how it relates to your campaign goals
* Consider using progressive rewards to incentivize users to hold more tokens
# Transactions count
Source: https://docs.claimr.io/tasks/web3-tasks/transactions-count
Verify and reward users based on the number of transactions they have made on a specific blockchain network.
This task is useful for identifying active users, encouraging on-chain engagement, or rewarding loyal community members.
### Before you start
Make sure you have:
* A quest created within your campaign
* Knowledge of which blockchain networks your target users are active on
* A minimum transaction count threshold determined
### Create the task
Follow the steps in [Web3 tasks](/tasks/web3-tasks/overview) to navigate to the task creation screen, select **Web3** from the Groups section, and choose **Transactions Count**.
### Task settings
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 5% multiplier increases the final reward by 5%.
**Networks**: Select the blockchain network on which you want to track user transactions.
* Click the first dropdown to choose a network (e.g., Ethereum)
* Click the second dropdown to select Mainnet or Testnet
* Click **Add network** to track transactions across multiple networks
* Users must meet the minimum count across all selected networks combined
**Min Count**: Specify the minimum number of transactions a user must have made across all selected networks to be eligible for the task.
Example: If you enter "10", users who have made at least 10 transactions in total across any of the chosen networks will qualify. The count is cumulative across all networks you've added.
**Time, h (optional)**: Set a time window in hours for counting transactions. If specified, only transactions made within this time period will count. Leave blank to count all transactions from the wallet's history.
### Helpful tips
* Provide clear instructions on how users can check their transaction count on the specified blockchain network
* Be transparent about why you're tracking transaction count and how it relates to your campaign goals
* Consider setting different minimum counts for different networks based on typical activity levels
# Verify transactions
Source: https://docs.claimr.io/tasks/web3-tasks/verify-transactions
Verify and reward users for executing a specific transaction on a selected blockchain network.
Use this task for incentivizing on-chain interactions with your smart contracts, rewarding users for participating in specific DeFi protocols, or tracking contributions to a DAO.
### Before you start
Make sure you have:
* A quest created within your campaign
* The contract address for the transaction you want to verify
* The Method ID of the specific function users should call
* Knowledge of which blockchain network the transaction should occur on
### Create the task
Follow the steps in [Web3 tasks](/tasks/web3-tasks/overview) to navigate to the task creation screen, select **Web3** from the Groups section, and choose **Verify Transactions**.
### Task settings
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
**Networks**: Select the blockchain network on which the transaction should occur. Click **Add network** to add multiple networks. For each network, you'll need to specify the Contract Address. This ensures that the task accurately verifies transactions across all relevant networks.
**Method ID**: Enter the unique identifier that specifies which function within a smart contract is being called during a transaction. This is a short code derived from the function's name and the types of its parameters.
**How to find Method ID**:
1. Locate the transaction on a blockchain explorer (like Etherscan)
2. Click on the transaction hash to view its details
3. Look for the "Input Data" section
4. The Method ID is usually displayed at the beginning of the input data string (starting with "0x")
**Min Count (optional)**: Specify the minimum number of times this transaction must be executed. Leave blank if a single transaction is sufficient.
**Time, h (optional)**: Set a time window in hours for counting transactions. If specified, only transactions made within this time period will count.
### Pro tips
* Provide clear instructions on how to execute the specific transaction, including any necessary steps like connecting a wallet, accessing the relevant dApp or smart contract, and providing the required parameters
* Specify the purpose of the transaction, the smart contract involved, and any relevant links (e.g., to the dApp or blockchain explorer) in the task description
* If the task involves interacting with smart contracts, emphasize security best practices and remind users to verify the transaction details before executing
# Wallet balance
Source: https://docs.claimr.io/tasks/web3-tasks/wallet-balance
Verify and reward users based on the balance they hold in their cryptocurrency wallet.
Use this task to incentivize users to hold a certain amount of a specific cryptocurrency or to reward those who have already invested in your project.
### Before you start
Make sure you have:
* A quest created within your campaign
* Knowledge of which blockchain network(s) your users are active on
* A minimum balance threshold determined
### Create the task
Follow the steps in [Web3 tasks](/tasks/web3-tasks/overview) to navigate to the task creation screen, select **Web3** from the Groups section, and choose **Wallet Balance**.
### Task settings
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
**Recurrence**: Control how often users can complete the task:
* **Once** - can only be completed one time per user
* **8h** - available once every eight hours
* **Daily** - available once every 24 hours
* **Weekly** - available once every 7 days
* **Multiple** - stays open and can be completed as many times as needed, one after another, without any waiting time
**Network**: Select the blockchain network on which you want to check the user's wallet balance.
* Click the first dropdown to choose a network (e.g., Ethereum)
* Click the second dropdown to select Mainnet or Testnet
* Click **Add network** to check balances across multiple networks
* Users must meet the minimum amount across all selected networks combined
**Amount**: Specify the minimum balance required to complete the task.
* Example: Entering "1" would require users to have at least 1 ETH in their wallet on the chosen network(s). The balance is cumulative across all networks you've added.
**USD value? (optional)**: Toggle this on if you want to display the equivalent USD value of the required balance to users. This can provide additional context and clarity.
### Helpful tips
* Provide clear instructions on how users can check their wallet balance on the specified blockchain network
* Be transparent about why you're checking wallet balances and how it relates to your campaign goals
* Consider setting different minimum amounts for different networks based on typical gas fees and activity
# X (Twitter) tasks
Source: https://docs.claimr.io/tasks/x-twitter-tasks
Increase your X presence, promote your content, and encourage meaningful interactions with Claimr's X (Twitter) task types.
## What is an X task?
X tasks are interactive activities within Claimr campaigns that leverage the X (formerly Twitter) platform to engage users and drive specific actions. These tasks can range from following your X account, retweeting posts, participating in discussions, or completing challenges.
**Use X tasks to:**
* Increase your X followers.
* Promote your tweets and drive engagement (likes, retweets, comments).
* Run contests and giveaways on X.
* Increase brand awareness and social media presence.
* Encourage users to participate in discussions or challenges on X.
For detailed information about general task settings, including task name, header, description, rewards, dependencies, and more, refer to the [Task settings](/tasks/task-settings) article.
## Task type
Choose the specific type of task you want to create for your campaign.
1. Select **X (Twitter)** to indicate that the task will be completed with the X platform.
2. Considering your aim, select the specific task type from the expanded list.
## Task settings
Most X tasks in Claimr fall into two categories:
* **Verified**: These tasks require users to verify their actions on X. This means Claimr will check if the user has actually completed the required action (e.g., followed your account, retweeted a post) before marking the task as complete. This ensures that users genuinely engage with your X content.
* **Intent**: These tasks do not require verification. Users indicate their intent to complete the action (e.g., by clicking a button), and the task is marked as complete. This approach is helpful for tasks where verification is not feasible or necessary.
### Follow on X
Reward users for following your account on X.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 5% multiplier increases the final reward by 5%.
**Completion points**: Set the number of points awarded once the user reaches the required event count.
**Account Name field**: Enter the username of your X account that you want users to follow. Make sure to enter the correct username without the "@" symbol.
### Like a post
Reward users for liking a specific post on your X account.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 5% multiplier increases the final reward by 5%.
**Completion points**: Set the number of points awarded once the user reaches the required event count.
**Post Link**: Enter the full URL of the X post that you want users to like.
**Preview image (optional)**: Paste a direct image link to show a custom preview in the task.
**Hide preview? (optional)**: Enable this to hide the post preview within the task.
### Repost
Reward users for reposting a specific post on your X account.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 5% multiplier increases the final reward by 5%.
**Completion points**: Set the number of points awarded once the user reaches the required event count.
**Post Link**: Enter the full URL of the X post that you want users to like.
**Preview image (optional)**: Paste a direct image link to show a custom preview in the task.
**Hide preview? (optional)**: Enable this to hide the post preview within the task.
### Post
Reward users for creating a post on X with a specific message.
**Completion points**: Set the number of points awarded once the user reaches the required event count.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 5% multiplier increases the final reward by 5%.
**Recurrence**: Control how often users can complete the task:
* Once - can only be completed one time per user.
* 8h - available once every eight hours.
* Daily - available once every 24 hours.
* Weekly - available once every 7 days.
* Multiple - stays open and can be completed as many times as needed, one after another, without any waiting time.
**Message**: Add the exact text you want users to include in their X post (max 280 chars).
**Tweet Message Link (optional)**: Add the URL you want users to include in their X post (max 280 chars).
**Hashtags (optional)**: List required hashtags as a comma-separated string (e.g., Claimr,web3).
**Expected text (optional)**: Require an exact string that must appear in the user's X display name (e.g., brand name or emoji).
**RegEx (optional)**: If you want users to include a specific emoji or a link to your website in their X post, you could use a regular expression like `.*🚀.*Claimr\.io.*` to allow for any characters before or after the emoji and the website link.
**Resources**
* **Regular expression builder**: [https://regex101.com/](https://regex101.com/)
* **AI assistants**
### Comment
Reward users for commenting on a specific post on your X account.
**Completion points**: Set the base points a user earns once the required event count is reached.
**Points multiplier (%)**: Apply a percentage bonus to the base points (e.g., 5 → +5%).
**Recurrence**: Control how often the same user can complete this task:
* Once: can be completed one time per user.
* 8h: available once every eight hours.
* Daily: available once every 24 hours.
* Weekly: available once every 7 days.
* Multiple: stays open and can be completed back-to-back with no waiting time.
**Post Link**: Add the full URL of the X post you want users to comment on.
**Hide preview? (optional)**: Enable to hide the post preview within the task.
**Hashtags (optional)**: Enter any hashtags you want users to include in their comments (comma-separated).
### Quote
Reward users for quoting a specific post on your X account.
**Completion points**: Set the base points a user earns once the required event count is reached.
**Points multiplier (%)**: Apply a percentage bonus to the base points (e.g., 5 → +5%).
**Recurrence**: Control how often the same user can complete this task:
* Once: can be completed one time per user.
* 8h: available once every eight hours.
* Daily: available once every 24 hours.
* Weekly: available once every 7 days.
* Multiple: stays open and can be completed back-to-back with no waiting time.
**Post Link**: Add the full URL of the X post you want users to quote.
**Preview image (optional)**: Paste a direct image link to show a custom preview in the task.
**Hide preview? (optional)**: Enable to hide the post preview within the task.
**Hashtags (optional)**: Enter any hashtags you want users to include in their quote (comma-separated).
### Followers count
Reward users for having a certain number of followers on their X account. This can encourage users to grow their X presence and potentially increase your campaign's reach through their network.
**Completion points**: Set the base points a user earns once the required event count is reached.
**Points multiplier (%)**: Apply a percentage bonus to the base points (e.g., 5 → +5%).
**Minimum Followers**: Enter the minimum required number of followers that a user must have on their X account to complete this task.
### Name verification
Reward users for changing their X display name to a specific value or pattern. This can be useful for encouraging users to align their X identity with your community.
**Completion points**: Set the base points a user earns once the required event count is reached.
**Points multiplier (%)**: Apply a percentage bonus to the base points (e.g., 5 → +5%).
**Expected text (optional)**: Enter the exact text that you expect users to include in their X display name. This could be your brand name, an emoji, or any other specific words.
**RegEx (optional)**: To allow variations in the user's X display name, you can use a regular expression (RegEx) to define a pattern the name must match. This is useful for allowing different spellings, capitalizations, or the inclusion of emojis.
**Examples**
* **Include a specific emoji**: If you want to include a specific emoji (e.g., ✨) in the user's X name, you could use a regular expression like `.*✨.*` to allow for any characters before or after the emoji.
* **Start with a specific word or phrase**: If you want to ensure the user's X name starts with a specific word or phrase, you could use a regular expression like `^YourKeyword` to match any string that begins with "YourKeyword".
* **End with a specific word or phrase**: If you want to ensure the user's X name ends with a specific word or phrase, you could use a regular expression like `YourKeyword$` to match any string that ends with "YourKeyword".
* **Contain a specific word or phrase**: If you want to ensure the user's X name includes a specific word or phrase, you could use a regular expression like `.*YourKeyword.*` to match any string that contains "YourKeyword".
* **Match a specific format**: You can use regular expressions to define more complex patterns, such as email addresses, phone numbers, or dates. For example, to match a valid email address, you could use a regular expression like `[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}`.
**Resources**
* **Regular expression builder**: [https://regex101.com/](https://regex101.com/)
* **AI assistants**
**Example prompt for an AI Assistant**
"Help me create a regular expression to match X usernames that start with 'Claimr' and contain at least one digit."
### Bio verification
Reward users for adding specific information to their X bio. This can be useful for promoting your brand, campaign, or event, or for encouraging users to align their X bio with your community.
**Completion points**: Set the base points a user earns once the required event count is reached.
**Points multiplier (%)**: Apply a percentage bonus to the base points (e.g., 5 → +5%).
**Expected text (optional)**: Enter the text users need to include in their X bio. This could be your brand name, a campaign slogan, a website link, or any other specific text.
**RegEx (optional)**: To allow for variations in the user's X bio, you can use a regular expression (RegEx) to define a pattern the bio must match. This is useful for allowing different spellings, capitalizations, or the inclusion of emojis.
**Example:**
If you want users to include a specific emoji or a link to your website in their X bio, you could use a regular expression like `.*🚀.*Claimr\.io.*` to allow for any characters before or after the emoji and the website link.
### Submit X post
Reward users for submitting a post on the X platform. UGC can be any form of content created by users, such as text posts (tweets), images, and videos. This task type helps encourage users to create and share content related to your campaign, brand, or product on X.
**Completion points**: Set the base points a user earns once the required event count is reached.
**Points multiplier (%)**: Apply a percentage bonus to the base points (e.g., 5 → +5%).
**Recurrence**: Control how often the same user can complete this task:
* Once: can be completed one time per user.
* 8h: available once every eight hours.
* Daily: available once every 24 hours.
* Weekly: available once every 7 days.
* Multiple: stays open and can be completed back-to-back with no waiting time.
**Expected text (optional)**: Require an exact string that must appear in the user's X post text.
**RegEx (optional)**: To allow for variations in the user's X bio, you can use a regular expression (RegEx) to define a pattern the bio must match. This is useful for allowing different spellings, capitalizations, or the inclusion of emojis.
**Example:**
If you want users to include a specific emoji or a link to your website in their X post, you could use a regular expression like `.*🚀.*Claimr\.io.*` to allow for any characters before or after the emoji and the website link.
**Should contain image? (optional)**: Enable to require the X post to include at least one image.
**Need approval? (optional)**: Enable to require manual review and approval before points are awarded.
**Points per 1000 views**: This field allows you to specify the number of points (or other rewards) users earn for every 1000 views their UGC receives on X. This incentivizes users to create high-quality, engaging content that attracts views and promotes your campaign.
**Example**: If you set "points per 1000 views" to 10, a user whose post receives 3,000 views would earn 30 points.
### Join X community
**Completion points**: Set the base points a user earns once the required event count is reached.
**Points multiplier (%)**: Apply a percentage bonus to the base points (e.g., 5 → +5%).
**Recurrence**: Control how often the same user can complete this task:
* Once: can be completed one time per user.
* 8h: available once every eight hours.
* Daily: available once every 24 hours.
* Weekly: available once every 7 days.
* Multiple: stays open and can be completed back-to-back with no waiting time.
**Community ID**: Add the numeric ID of the X Community users must join (e.g., 1783602868140028342). Open the community in a browser and copy the number at the end of the URL (`x.com/i/communities/`), then paste it here.
# YouTube tasks
Source: https://docs.claimr.io/tasks/youtube-tasks
Incentivize users to subscribe to your channel or watch your videos, building a loyal community of viewers and subscribers.
## What is a YouTube task?
Engage users with YouTube content and track their interactions with your channel or videos.
**Use YouTube tasks to:**
* Increase your YouTube channel subscribers.
* Drive views and engagement on your videos.
* Promote your YouTube content within your Claimr campaigns.
* Reward users for interacting with your YouTube channel.
* Track the effectiveness of your YouTube marketing efforts.
For detailed information about general task settings, including task name, header, description, rewards, dependencies, and more, refer to the [Task settings](/tasks/task-settings) article.
## Task type
This section allows you to choose the specific type of task you want to create for your campaign.
1. Select **YouTube** to indicate that the task will be completed with this specific platform.
2. Considering your aim, select the specific task type from the expanded list.
## Task settings
### Submit YouTube video
Reward users for submitting videos on YouTube. This task type helps encourage users to create and share content related to your campaign, brand, or product.
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
**Recurrence**: Control how often users can complete the task:
* Once - can only be completed one time per user.
* Daily - available once every 24 hours.
* Weekly - available once every 7 days.
* Multiple - stays open and can be completed as many times as needed, one after another, without any waiting time.
**Need approval? (optional)**: Turn on to require manual review and approval before the task is marked as complete.
### Subscribe to a channel
Reward users for subscribing to a specific YouTube channel.
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
**YouTube channel ID**: Enter the unique ID of your YouTube channel to enable subscription verification. For example: UCLA\_DiR1fFkNvjvUpBHmylQ. To find it, go to your YouTube channel → About → More → Channel details → Copy channel ID.
Remember, accuracy is crucial when entering the ID to ensure Claimr can correctly interact with your YouTube channel.
### Watch YouTube video
Reward users for watching a specific YouTube video.
**Completion points**: Set the number of points awarded when the user completes the task.
**Points multiplier (%)**: Add a percentage-based bonus to the total reward. For example, a 10% multiplier increases the final reward by 10%.
**Recurrence**: Control how often users can complete the task:
* Once - can only be completed one time per user.
* Daily - available once every 24 hours.
* Weekly - available once every 7 days.
* Multiple - stays open and can be completed as many times as needed, one after another, without any waiting time.
**Video ID**: Enter the unique ID of the YouTube video you want users to watch. For example: IGuHERKAiHs. You can find it in the video URL after v=.
**Min watch time in seconds (optional)**: Set the minimum time users must watch the video to complete the task. For example, enter 20 to require at least 20 seconds of viewing.
## Error handling
While setting up your YouTube task, encountering errors is a possibility. Verify that you've entered the correct YouTube channel ID and video ID in the task settings.
If you continue to experience issues, reach out to Claimr's support team for further assistance.
# Team roles and management
Source: https://docs.claimr.io/team-roles-and-management
The Team Management panel allows you to view and manage team members, their roles, and permissions. You can also invite new members to join your team and remove existing ones.
**Open the Team Management panel**: From your Claimr main panel, click on the **Team** tab in the header menu. This will open the team management panel where you can view and edit your team members.
## Team roles
Understanding the different team roles is crucial for effective collaboration and managing access to your Claimr organization and campaigns.
### Owner
Owners have complete control over the organization's settings, campaigns, and team members. They can create, edit, and delete campaigns, manage team members' roles and permissions, and make changes to the organization's profile and billing information.
### Manager
Team members with this role can modify quest settings, adjust rewards, and fine-tune various parameters of selected campaigns, ensuring an optimal experience for participants. However, they cannot modify organization-wide settings, manage other team members' roles, or delete campaigns entirely. This role strikes a balance between flexibility and control, making it ideal for marketing teams, content creators, or anyone responsible for specific campaign outcomes.
### Reviewer
Team members have limited access to the quest settings. They can only view and manage PoW (Proof of Work) and UGC (User-Generated Content) tasks. All other settings and functionalities within the quest will be view-only. This mode is ideal for team members who are specifically responsible for handling and evaluating user-submitted content or work.
### Choosing the right role
When inviting new team members, carefully consider the level of access they need. Granting the appropriate role ensures that team members have the necessary permissions to contribute effectively while maintaining the security and integrity of your organization's data.
## Invite a user to your team
Click the **Invite** button above the table of your team members to initiate the invitation process. This will open the invitation form.
Enter the email of the person you want to invite.
Select the appropriate role for your teammate from the dropdown menu.
* **Owner**: Has full control over the organization and all campaigns within it.
* **Can Edit**: Can edit campaigns and quests but cannot manage the organization settings or team members.
* **Can View**: Can only view campaigns and quests but cannot make any changes.
Choose the campaigns to which you want to grant the invited user access. You can select multiple campaigns by checking the boxes next to their names.
Click the **Invite teammates** button, so the invited user will receive an email invitation with a link to join the organization. This link will grant them access to the selected campaigns based on the role you assigned.
## Remove a user from your team
In the team management list, find the user you wish to remove from your team members.
Click the **Remove** button above the table of your team members. This will open a confirmation dialog box.
In the dialog box, click **Yes, remove** to confirm your decision. This will immediately remove the user from your team.
# Usage Data
Source: https://docs.claimr.io/usage-data
See detailed breakdowns, projections, and historical records of your subscription performance, connected directly to the values shown in Billing.
Usage Data gives you an overview of your subscription performance. It connects directly with the values shown in Billing and expands them with detailed breakdowns. Projections highlight whether usage is on track or likely to exceed your plan, and historical records make it possible to compare consumption across different subscription periods.
Usage Data also shows the actions behind that performance. Depending on your subscription type (Credits or Monthly Active Users), it details how much of the allocation has been used and which tasks or users contributed to it. The data updates in near real time, so you can monitor the progress of your campaigns as activity occurs.
## Tables
There are several types of tables in Usage Data.
### Overview table
The first table aggregates actions performed during the subscription period. Each row includes:
* Platform (e.g., Twitter, Web, Web3)
* Task name
* Execution count
* Credits spent (for credit-based subscriptions)
This gives you a grouped summary of activity, showing how often each task was completed and how many credits it consumed in total.
### Detailed task log
The second table provides a chronological log of every single task performed. Each row includes:
* **#** - the sequence number of the action
* **Platform** - where the task was executed
* **Task** - the specific task type (e.g., Connect a Wallet, reCAPTCHA check, Follow on X)
* **Credits** - the cost of that individual task in credits
* **Date** - the exact timestamp of when the task was executed
This log gives you a granular view of usage, making it possible to audit activity and track exactly when and how credits were spent.
## Graphs
### Credits usage graph
* Green area: credits used in real time.
* Orange line: projected usage until the subscription ends.
* Yellow line: subscription credit limit. This shows if you are likely to exceed your plan.
### Task type graph
* Displays how many times each task type was executed.
* Tasks can be enabled or disabled for comparison.
### Filtering and time ranges
You can filter by campaign, subscription period, or custom date range. Resetting filters returns the view to the active subscription.
#### History
Past subscriptions are listed in a history table. This history allows you to compare previous subscriptions and track how your usage has changed over time.
# Campaign UX requirements
Source: https://docs.claimr.io/ux-requirements/campaign-ux-requirements
Key design elements and considerations for building visually appealing, user-friendly Claimr campaigns, from user progress to leaderboards.
## Understanding Campaigns
A campaign in Claimr is a structured set of activities and challenges designed to engage users and drive specific actions. It's a container with various elements, such as quests, tasks, rewards, and leaderboards, all working together to achieve your campaign goals.
## 1. User progress block
### Username
Displays the username of the logged-in user. If the user is not logged in, it might show a generic placeholder or prompt the user to log in.
* **Clarity:** Use a legible font and appropriate font size.
* **Placement:** Position the username prominently at the top of the page.
* **Logged-out state:** Clearly indicate that the user is not logged in and provide a clear path to log in or sign up.
### User progress
Shows the user's progress within the campaign.
* **Visual clarity:** Use clear labels and visual cues to represent progress.
* **Accessibility:** Ensure the progress bar is accessible to screen readers.
**Logged-in state:** Display personalized information, such as the user's name, points, and a progress bar.
**Logged-out state:** Show a simplified progress bar or a call to action to log in.
For more information, see [User progress UX requirements](/ux-requirements/user-progress-ux-requirements).
### Login/Logout button
Allows users to log in or out of their account.
* **Clear labeling:** Use distinct labels or icons to indicate the logged-in or logged-out state.
* **Placement:** Position the button near the user's name or progress information.
## 2. Highlighted quests
Prominently displayed quests to attract attention and encourage participation.
* **Visual prominence:** Use design elements (e.g., size, color, animation) to highlight these quests.
* **Relevance:** Ensure the highlighted quests are relevant and engaging to users.
## 3. Campaign description
Provides an overview of the campaign's goals, objectives, and rewards.
* **Clarity:** Use clear and concise language.
* **Engagement:** Write in a compelling and informative tone.
* **Visual appeal:** Use formatting and visuals to enhance readability.
## 4. Challenges
Activities that encourage users to go above and beyond the standard quests in your campaign. They offer a way to boost engagement and provide unique opportunities for users to earn rewards or recognition.
* **Clear presentation:** Clearly explain the challenge objectives and rewards.
* **Optional participation:** Make it clear that these challenges are optional.
* **Flexibility:** Allow for different naming conventions (Seasons, Eras, etc.).
## 5. Group
Organizes quests into logical groups, making it easier for users to navigate your campaign and understand the relationships between different quests. This helps provide context and structure to the user journey.
* **Grouping:** Visually group related quests together.
* **State indicators:** Clearly indicate whether the group is locked or unlocked.
* **Group description:** Provide a concise description of the quest group's theme or focus.
For more information, see [Group UX requirements](/ux-requirements/group-ux-requirements).
### Quest card
Represents an individual quest within a quest group.
* **Preview:** Provide a preview of the quest's objectives and rewards.
* **State indicators:** Clearly indicate whether the quest is active, locked, or completed.
For more information, see [Quest card UX requirements](/ux-requirements/quest-card-ux-requirements).
### Tasks
Specific actions within a quest.
* **State indicators:** Clearly communicate the task's status (active, locked, or completed).
* **Task header:** Provide a concise and informative title.
* **Task description:** Offer clear instructions.
* **Call to action:** Include a clear CTA button.
For more information, see [Task UX requirements](/ux-requirements/task-ux-requirements).
### State indicators
These visual cues help users quickly understand the overall status of campaigns, quests, and tasks: Active, Completed, or Locked.
* **Visual clarity:** Use distinct colors, icons, timers, or labels to differentiate between the states.
* **Accessibility:** Ensure the indicators are easily distinguishable for users with visual impairments, utilizing sufficient contrast and screen-reader-friendly descriptions.
### Pop-ups and notifications
Provide feedback and information to users.
* **Visual appeal:** Use subtle animations, icons, or colors.
* **Accessibility:** Ensure notifications are accessible to screen readers.
* **Clear close option:** Provide a prominent close button.
* **Mobile optimization:** Ensure pop-ups display correctly on smaller screens.
For more information, see [Pop-ups UX requirements](/ux-requirements/pop-ups-ux-requirements).
### Close/View more buttons
Allow users to close or expand certain sections or elements within the campaign.
* **Clear labeling:** Use clear and concise labels (e.g., "Close," "View More").
* **Placement:** Position buttons logically based on the content they control.
For more information, see [Interactive components UX requirements](/ux-requirements/interactive-components-ux-requirements).
## 6. Leaderboard
The leaderboard displays a ranked list of users based on points or performance metrics. It helps foster engagement by highlighting top contributors or achievers.
States and behaviors to design for:
* **Default view:** Displays the full leaderboard with all ranked users visible.
* **Collapsed leaderboard state:** Only the heading row and the top 9 ranked users are shown when the list is long. Include **View more** / **Hide** buttons to expand or collapse the list.
* **Leaderboard pop-up:** Design the button for flows when the leaderboard appears only after clicking it.
* **Collapse button in pop-up:** When opened in a modal, include an option to collapse or minimize the leaderboard view.
* **Pagination:** If the full list is too long to load at once, add pagination to allow users to browse through pages of results.
* **Clear rankings:** Present user rankings and relevant metrics clearly.
* **Visual hierarchy:** Use size, color, and placement to highlight top performers.
# Group UX requirements
Source: https://docs.claimr.io/ux-requirements/group-ux-requirements
UX design considerations for presenting groups of quests within your Claimr campaigns, including state indicators and layout options.
## Understanding Groups
A group in Claimr is a collection of related quests that contribute to the overall campaign objective. Grouping quests helps users understand the structure of your campaign and navigate through related challenges.
## Group state indicators
Like individual tasks, quest groups in Claimr can also have different states, which should be clearly communicated to the user through visual cues and messaging.
Possible states for a quest group:
* **Active:** The quest group is currently accessible, and users can participate in its quests. This is often indicated by a distinct visual style, such as a brightly colored header or a prominent "Active" label.
* **Completed:** The user has successfully completed all the quests within this group. This might be visually represented with a checkmark, a trophy icon, or a "Completed" label.
* **Locked:** The quest group is currently inaccessible due to certain conditions. There are a few common reasons for a group to be locked:
* **Not enough points:** Users need to earn a specific number of points or complete other quests to unlock this group. This is often visually indicated with a lock icon or a progress bar showing how many points are still needed.
* **Timer:** The quest group is locked until a specific time or date. This can be represented with a timer or a countdown clock, clearly showing when the group will become available.
* **Inactive (Upcoming):** The quest group is not yet active but will become available at a scheduled time in the future. This can be indicated with a "Coming Soon" label or a date and time for when the group will become active.
* **Inactive (Past):** The quest group is no longer active and is not available for participation. This might be visually de-emphasized or have a label indicating it's expired or past.
**Design requirements:**
* **Visual clarity:** Use distinct colors, icons, or labels to clearly differentiate between each state.
* **Accessibility:** Ensure the indicators are easily distinguishable for users with visual impairments, utilizing sufficient contrast and screen-reader-friendly descriptions.
* **Consistency:** Maintain a consistent visual style for state indicators across all quest groups and individual quests within your campaign.
* **Informative tooltips or labels:** Consider using tooltips or concise labels to provide additional context or information about the reason for a locked state (e.g., "Unlocks after completing \[Quest Name]").
## Group header
Provides a clear and concise title for the group, summarizing its theme or focus.
* **Clarity:** Use descriptive and easily understandable language.
* **Visual prominence:** Make the header visually distinct to differentiate it from individual quests.
## Group description
Provides additional context or information about the group.
* **Conciseness:** Keep the description brief and focused.
* **Informative:** Clearly convey the theme or purpose of the group.
## Quest cards
Each quest within the group is represented by a quest card.
* **Visual clarity:** Use clear visuals and labels to distinguish between different quest states.
* **Information hierarchy:** Prioritize important information.
* **Engagement:** Design visually appealing cards.
For more information, see [Quest card UX requirements](/ux-requirements/quest-card-ux-requirements).
## Navigation and layout
Present the quests within a group clearly and in an organized manner, allowing for easy navigation and exploration.
* **Logical grouping:** Group related quests together visually.
* **Clear hierarchy:** Establish a clear visual hierarchy between the group header, description, and individual quest cards.
* **Responsive design:** Ensure the group layout adapts well to different screen sizes and devices.
### Layout options
* **Grid layout:** Arrange quest cards in a grid format. This is ideal for showcasing multiple quests simultaneously and allowing users to quickly scan and compare options.
* **Slider layout:** Present quest cards in a horizontal slider. This is suitable for limited space or when you want to emphasize a sequential flow of quests.
# Interactive components UX requirements
Source: https://docs.claimr.io/ux-requirements/interactive-components-ux-requirements
UX design requirements for buttons and input fields within your Claimr campaigns, ensuring they are user-friendly, accessible, and visually appealing.
Interactive components, such as buttons and input fields, are essential elements for gathering user information and enabling interactions within your Claimr campaigns. Designing user-friendly interactive components is crucial for ensuring a smooth and efficient user experience.
## Log in / Log out buttons
Facilitate user authentication and session management.
* **Clear labels:** Use concise and descriptive labels like "Log In" and "Log Out."
* **Visual distinction:** Differentiate the two buttons through color, styling, or placement.
* **Feedback:** Provide visual feedback upon interaction, such as a loading state or change in button appearance.
* **Accessibility:** Ensure buttons have clear focus states.
## Action buttons
Trigger specific actions within the campaign (e.g., "Submit," "Next," "Follow").
* **Clear labels:** Use action-oriented verbs that accurately describe the button's function.
* **Visual hierarchy:** Make action buttons prominent and visually distinct from other elements.
* **Disabled state:** Clearly indicate when a button is disabled (e.g., grayed out, with a tooltip explaining why).
* **Feedback:** Provide visual feedback upon interaction, such as a loading state or change in button appearance.
## Checkbox
Allow users to select or deselect options.
* **Clear labels:** Provide concise labels adjacent to checkboxes, describing the corresponding options.
* **Visual states:** Clearly differentiate between checked, unchecked, and disabled states using distinct visual cues (e.g., checkmark, empty box, grayed-out box).
* **Hit area:** Make the clickable area surrounding the checkbox large enough for easy interaction.
## Text input
Enable users to enter textual information.
* **Clear labels:** Provide descriptive labels above or adjacent to input fields.
* **Input field size:** Adjust the input field size appropriately based on the expected input length.
* **Placeholder text/hint:** Use placeholder text or hints to guide users on the expected input format or content.
* **Disabled state:** Clearly indicate when an input field is disabled (e.g., grayed out).
* **Error handling:** Provide clear error messages and guidance if input validation fails.
## Upload image
Allow users to upload image files.
* **Clear CTA:** Use a clear button or label (e.g., "Upload Image") to initiate the upload process.
* **File selection:** Provide a standard file selection dialog for users to choose an image file.
* **Image preview:** Display a preview of the uploaded image before submission.
* **File validation:** Implement file type and size validation to prevent errors.
* **Error handling:** Provide clear error messages if file validation fails.
* **Accessibility:** Ensure the upload process is accessible to screen readers and keyboard users.
# UX requirements
Source: https://docs.claimr.io/ux-requirements/overview
Design checklists covering campaign structure, groups, quest cards, quests, tasks, user progress, pop-ups, and interactive components in Claimr.
### The importance of UX for campaigns
* **Feature visibility:** Claimr's flexibility comes with the ability to customize the look and feel of your campaigns extensively. However, without UX design, certain features may not be displayed correctly or prominently, hindering user engagement and campaign success.
* **User-friendly interface:** Intuitive navigation and clear layouts are essential for a positive user experience. Poor UX design can lead to frustration, causing users to abandon your campaign.
* **Optimized engagement:** By incorporating UX best practices, you can guide users through your campaign seamlessly, encouraging them to complete tasks, earn rewards, and ultimately achieve your campaign goals.
* **Brand consistency:** A well-designed campaign reflects positively on your brand and reinforces your message. UX design helps maintain a cohesive and professional look that strengthens your brand identity.
### Key UX considerations for your campaign
Before diving into building your campaign with Claimr, take the time to plan and design the user experience. Consider the following:
* **User flow:** Map out the steps you want users to take within your campaign, from initial landing to completing tasks and claiming rewards.
* **Layout and visuals:** Ensure your designs are visually appealing, easy to navigate, and align with your brand identity.
* **Mobile responsiveness:** Test that your campaign looks and functions flawlessly across different devices, including desktops, tablets, and smartphones.
Explore the essential UX checklists to guarantee your Claimr campaign looks and performs its best.
Design elements and considerations for the overall campaign structure.
UX requirements for presenting groups of quests.
Design elements for creating effective and engaging quest cards.
Design elements for building visually appealing, user-friendly quests.
Requirements for presenting tasks clearly throughout their lifecycle.
How to design clear, informative displays of user progress.
Requirements for designing effective, user-friendly pop-ups.
Requirements for buttons and input fields across your campaigns.
# Pop-ups UX requirements
Source: https://docs.claimr.io/ux-requirements/pop-ups-ux-requirements
UX design requirements for pop-ups within your Claimr campaigns, covering login, wallet connect, task completion, challenges, leaderboard, and notifications.
Pop-ups provide a way to deliver important information or enable focused interactions within your Claimr campaigns.
## General requirements
* **Purposeful use:** Use pop-ups sparingly and only when necessary to avoid disrupting the user flow.
* **Clear close option:** Provide a prominent and easily accessible close button.
* **Visual hierarchy:** Use headings, subheadings, and bullet points to organize content.
* **Mobile optimization:** Ensure pop-ups are responsive and adapt well to smaller screens.
* **Accessibility:** Design with accessibility in mind, including appropriate color contrast, keyboard navigation, and screen reader compatibility.
## Login
* **Clear purpose:** Explain why login is required and its benefits.
* **Multiple options:** Offer various login methods (e.g., email, social media).
* **Error handling:** Provide clear error messages and guidance.
## Wallet connect
* **Clear instructions:** Provide step-by-step instructions on how to connect a wallet.
* **Supported wallets:** Display a list of supported wallets and their logos.
* **Security information:** Assure users about the security of their wallet connection.
* **Error handling:** Provide clear error messages and troubleshooting tips if connection issues arise.
## Platform login
* **Platform branding:** Incorporate the branding of the relevant platform for visual consistency.
* **Clear instructions:** Explain the login process and any required permissions.
* **Error handling:** Display clear error messages if login attempts fail.
## Email login
* **Clear input fields:** Provide well-labeled input fields for email and password.
* **Password recovery:** Include a "Forgot Password" link for users who need assistance.
* **Error handling:** Display clear error messages if login attempts fail.
## Completed task
* **Congratulatory message:** Celebrate the user's achievement.
* **Reward display:** Clearly showcase the earned reward.
* **Call to action (CTA):** Encourage further progress or exploration.
## Challenge details
* **Challenge information:** Clearly present the challenge's objectives, rules, rewards, and any time constraints.
* **Progress tracking:** Include a progress bar or indicator to show the user's advancement towards the challenge goal.
* **CTA:** Include a "Participate" or similar button to prompt users to join the challenge.
## Leaderboard
* **Default view:** Displays the full leaderboard with all ranked users visible.
* **Collapsed leaderboard state:** Only the heading row and the top 9 ranked users are shown when the list is long. Include **View more** / **Hide** buttons to expand or collapse the list.
* **Leaderboard pop-up:** Design the button for flows when the leaderboard appears only after clicking it.
* **Collapse button in pop-up:** When opened in a modal, include an option to collapse or minimize the leaderboard view.
* **Pagination:** If the full list is too long to load at once, add pagination to allow users to browse through pages of results.
* **Clear rankings:** Present user rankings and relevant metrics clearly.
* **Visual hierarchy:** Use size, color, and placement to highlight top performers.
## Action status notifications
* **Concise message:** Provide a brief message about the action's status.
* **Visual cues:** Use colors, icons, or animations for visual feedback.
* **Additional information:** Include relevant details or instructions.
# Quest card UX requirements
Source: https://docs.claimr.io/ux-requirements/quest-card-ux-requirements
Key design elements and considerations for creating effective and engaging quest cards in your Claimr campaigns.
## Understanding Quest cards
Quest cards serve as the primary interface for users to interact with individual quests within your campaign. Each card should provide a clear overview of the quest's objectives, rewards, and progress, enticing users to embark on the journey.
## Quest state indicators
Clearly communicate the current state of the quest: Active, Completed, or Locked.
* **Visual clarity:** Employ distinct colors, icons, or labels to differentiate between each state.
* **Accessibility:** Ensure the indicators are easily distinguishable for users with visual impairments.
* **Consistency:** Maintain a consistent visual style for state indicators across all quests.
* **Placement:** Position these indicators prominently on the quest card.
## Image
Provides a visual representation of the quest's theme.
* **Relevance and quality:** Choose high-quality images that are relevant to the quest's content.
* **Size and aspect ratio:** Ensure the image is appropriately sized and cropped.
* **Accessibility:** Provide alternative text descriptions for images.
## Quest name
Clearly and concisely conveys the essence of the quest.
* **Clarity:** Use action-oriented language and avoid jargon.
* **Length:** Keep the title short enough to fit within the card's layout.
* **Hierarchy:** Use a larger font size and/or bolder font weight to distinguish the title.
## Short quest description
Provides a brief overview of the quest's objectives and rewards.
* **Conciseness:** Craft a succinct description.
* **Clarity:** Use plain language and avoid technical terms.
* **Enticement:** Use persuasive language to encourage participation.
## User progress bar
Visually represents the user's progress towards completing the quest.
* **Clarity:** Use a clear and easily understandable progress indicator.
* **Visual feedback:** Provide updates to the progress bar as the user completes tasks.
* **Accessibility:** Ensure the progress bar is accessible to screen readers.
## Counters
Display numerical information related to the quest, such as the number of tasks completed or rewards earned.
* **Clarity:** Use clear labels and units of measurement.
* **Placement:** Position counters near relevant elements.
## Rewards
Showcase the rewards that users can earn by completing the quest.
* **Visual appeal:** Use high-quality images or icons to represent the rewards.
* **Clarity:** Clearly indicate the type and quantity of rewards offered.
## CTA button
Prompts users to take action and start or continue the quest.
* **Clarity:** Use action-oriented language.
* **Visual prominence:** Make the button stand out.
* **Accessibility:** Ensure the button is easily clickable.
* **State differentiation:** Visually distinguish between active and inactive states.
## Quest blockers and dependencies
Display any conditions or requirements that must be met before a user can start or continue a quest.
* **Clarity:** Clearly communicate the blockers and any actions the user needs to take. Show any other quests that must be completed before this quest can be unlocked.
* **Visual cues:** Use icons or labels to visually distinguish blockers.
## Countdown
Displays a timer for time-sensitive quests.
* **Clarity:** Use a large, easy-to-read font and clear time units.
* **Urgency:** Consider using color or animation to create a sense of urgency.
# Quest UX requirements
Source: https://docs.claimr.io/ux-requirements/quest-ux-requirements
Key design elements and considerations for building visually appealing and user-friendly Claimr quests, from the header to the footer.
## What is a Claimr Quest?
A quest in Claimr is a structured set of tasks designed to engage users and guide them towards specific goals within a campaign.
## 1. Quest header
This section displays the core information about the quest, including its name, the organization offering it (your company), and a brief description.
### Quest name
Clearly displays the name of the quest.
* Use a clear and concise title that reflects the quest's theme or objective.
### Organization name
Clearly displays the name of the organization or company associated with the campaign.
* Ensure consistency with branding guidelines.
### Quest description
Provides a brief overview of the quest's objectives and actions required.
* Use clear and concise language, avoiding jargon.
## 2. Rewards section
This section highlights the rewards users can earn by completing the quest.
### Rewards
Displays the rewards associated with the quest.
* Use high-quality images or icons to represent rewards.
* Clearly communicate the type and value of each reward.
### Points
Displays the number of points the user can earn by completing the quest.
* Use a clear numerical representation and label (e.g., "0/400 Points").
### Quest timer
Displays the time remaining for the quest or the time until it becomes available.
* Use a clear and easy-to-understand timer format.
## 3. Task section
This section presents the tasks users need to complete within the quest. It includes all tasks within the quest, and each task has a header, body, and a CTA button.
### Task header
Provides a concise and informative title for the task.
* Use action-oriented language.
### Task body
Provides the main content or details of the task, including any necessary information, instructions, or visuals.
* Use headings, subheadings, bullet points, and other formatting elements to organize the content.
* Incorporate relevant visuals, such as images, videos, or diagrams.
### CTA button
Provides a clear action button for users to engage with the task.
* Use action-oriented and concise language.
For more information, see [Task UX requirements](/ux-requirements/task-ux-requirements).
## 4. More quests section
This section shows a preview of other quests available in the campaign.
* Present quest previews in a visually appealing and concise manner.
## 5. Footer
This section contains actions or buttons related to the quest.
* Use clear labeling (e.g., "Close," "View More").
# Task UX requirements
Source: https://docs.claimr.io/ux-requirements/task-ux-requirements
UX design requirements for presenting tasks within your Claimr quests, covering active, locked, completed, and pending states plus popular task types.
## Understanding Tasks
Tasks are specific actions or objectives that users need to complete within a quest. They are the building blocks of quests and contribute to the overall user journey within a Claimr campaign.
Tasks can exist in 4 different states:
1. **Completed:** The user has successfully finished it.
2. **Active:** Currently available and ready for the user to complete.
3. **Locked:** Currently unavailable, possibly due to prerequisites or time constraints. The reason for being locked should be clear to the user.
4. **Pending:** Waiting for an external event or action (like a payment confirmation or approval) before it can be completed.
## Active tasks
This section focuses on the UX requirements for tasks that are currently active and available for users to complete.
### Task header
Provides a concise and informative title for the task, summarizing its objective.
* **Clarity:** Use action-oriented language and avoid jargon.
* **Prominence:** Display the title with visual emphasis.
### Task description
Provides clear instructions on what the user needs to do to complete the task.
* **Clarity:** Use simple language and break down complex tasks into smaller, manageable steps.
### Task body
* **Purpose:** This is where you provide the main content or details of the task, including any necessary information, instructions, or visuals.
* **Visual clarity:** Use headings, subheadings, bullet points, and other formatting elements to organize the content and make it easy to scan.
* **Visual aids:** Incorporate relevant visuals, such as images or videos, to enhance understanding and engagement.
* **Conciseness:** Keep the content focused and avoid unnecessary information.
### CTA button
Provides a clear action button for users to engage with the task (e.g., "Start task," "Complete," "Submit").
* **Clarity:** Use action-oriented and concise language.
* **Visual prominence:** Make the button stand out with contrasting colors or clear affordances.
## Locked tasks
This section focuses on the UX requirements for tasks that are currently locked and unavailable to users.
### Task state indicators
Clearly communicates that the task is locked and unavailable for completion.
* **Visual clarity:** Use distinct visual cues to indicate the locked state. This could include:
* **Color:** Use a different color for locked tasks (e.g., gray or a less prominent color).
* **Icons:** Use a lock icon or a similar visual symbol to represent the locked state.
* **Blurring or dimming:** Consider blurring or dimming the task's content to visually reinforce that it's inaccessible.
* **Placement:** Position the indicators prominently, ideally near the task title or in a location that is easily noticeable.
### Task description
Provides a brief description of the locked task, explaining what it entails and how to unlock it.
* **Conciseness:** Keep the information brief and focused.
* **Visual hierarchy:** Use design elements to guide the user's eye.
## Completed tasks
This section focuses on the UX requirements for tasks that have been successfully completed by the user.
### Task state indicators
Clearly communicates that the task has been completed.
* **Visual clarity:** Use distinct colors, icons, or labels to indicate the completed state.
* **Accessibility:** Ensure high contrast and consider screen reader compatibility.
* **Placement:** Position indicators prominently near the task title.
### Task header
Displays the title of the completed task.
### Completion message
Provides feedback to the user acknowledging their completion of the task. This can include congratulatory messages, information about rewards earned, or prompts to proceed to the next task or quest.
* **Clarity:** Use positive and encouraging language.
* **Informative:** Communicate the outcome of completing the task.
## Pending tasks
This section focuses on the UX requirements for tasks that are currently pending, meaning they are waiting for an external event or action before they become available or completed.
### Task state indicators
Clearly communicates that the task is pending and not yet ready for the user to interact with.
* **Visual clarity:** Use distinct visual cues to indicate the pending state. This could include:
* **Color:** Use a specific color for pending tasks (e.g., yellow or orange).
* **Icons:** Use an hourglass icon, a clock icon, or a similar visual symbol to represent waiting or pending action.
* **Labels:** Add a clear "pending" label to the task.
* **Placement:** Position the indicators prominently in a location that is easily noticeable.
### Task description
Provides a brief description of the pending task, explaining what it entails and what needs to happen for it to become active or complete.
* **Clarity:** Use concise and straightforward language to explain the pending state and the reason for it.
* **Informative:** Clearly communicate what the user needs to do or what event they are waiting for (e.g., "Waiting for payment confirmation," "Pending approval").
* **Visual hierarchy:** Use design elements like font size, color, and spacing to guide the user's eye to the most important information.
## Popular task types
While tasks in Claimr campaigns can share general states (Active, Completed, Locked, Pending), each task type comes with a unique UX layout and distinct design elements. These layouts influence how users engage with the task and must be accounted for in your design implementation.
Below are examples of the most common and structurally rich task types to guide your UX preparation.
### Log in and follow X task
This task requires users to log in with their X account and follow a designated profile to earn a reward. It combines both authentication and an external platform action.
UX elements to include in the design:
* **Instructional header:** A clear, action-based task title displayed at the top.
* **Login button:** A prominent button prompting X authentication. Ensure the state of the button (active, disabled) is clearly visually indicated.
* **Terms & Conditions checkbox:** Required before login becomes available. Include:
* Checkbox
* Linked text for "Terms and Conditions" and "Privacy Policy"
* **Target account preview:** A banner or embedded card showing users which account they're about to follow.
#### Conditional or alternative UI elements
Depending on task status or user action, the following additional UI elements may be present:
* **Confirmation state:** After login, users may be shown buttons:
* "Follow \[Account Name]" (deep linking to follow action)
* "Confirm" (another task used to validate action post-follow), with the user's handle displayed under the button for clarity
* **Help block (optional but recommended):** If task completion fails, show:
* Alert-style message (e.g., "Can't complete the task?")
* Bullet list of common fixes (e.g., public account, shadowban info)
* **Error hint / validation:** If task validation fails or the user attempts action before authentication, provide clear error messages or red input hints if applicable.
### Join Telegram group task
This task asks users to join a Telegram group. It includes platform authentication and group-specific context.
**UX requirements:**
* **Instruction header:** Clearly state what the user is expected to do (e.g., "Login and join a group to earn").
* **Group preview:** Display group avatar and name (visual identity is important).
* **Login button:** Must include the platform icon (Telegram) and clearly indicate the action.
* **Terms and Privacy checkbox:** Mandatory acceptance before proceeding.
* **State awareness:** If the user is already logged in, indicate which Telegram account is connected.
* **Multiple buttons:** Be ready to include both Login and Confirm buttons, if required by the flow.
### Referral link task
The user is asked to share a unique referral link and bring a specific number of users into the campaign.
**UX requirements:**
* **Instruction header:** Include the referral goal (e.g., "Invite 10 referrals").
* **Generate Link button:** Clear CTA styled button with appropriate icon (e.g., globe).
* **Referral progress display:** Show current count vs. required (e.g., "0 / 10") - use a progress bar where applicable.
* **Copy interaction:** Make it obvious that the user can copy the link; include feedback when copied.
* **Responsiveness:** Ensure long links fit or truncate well on small screens.
### Custom event task
This task is based on fulfilling a set number of customized actions within the campaign to unlock a reward.
**UX requirements:**
* **Instruction header:** Use clear action-based titles (e.g., "Complete to earn").
* **Progress indicator:** Numeric (e.g., "0 / 10") with an accompanying visual progress bar.
* **Refresh button:** Prominently placed to allow users to update their progress manually.
* **Feedback state:** If the progress bar updates after an action, animate the update subtly for clarity.
### UGC link task
The user is required to paste a URL (e.g., tweet, blog post, YouTube link) and submit it for validation.
**UX requirements:**
* **Instruction header:** Clearly state what kind of link needs to be submitted.
* **Input field:** Styled input area with placeholder (e.g., "[http://www.link.com](http://www.link.com)").
* **Submit button:** Actionable and responsive. Disabled until a valid-looking URL is entered.
* **Error state:** Show visual feedback if the input is empty or malformed.
* **Success handling:** Provide confirmation once submitted.
### UGC image task
The user is asked to upload an image, video, or other file to complete the task.
**UX requirements:**
* **Instruction header:** Clarify what kind of file is expected.
* **File picker button:** Clearly styled button labeled "Choose file."
* **Preview area:** Show a thumbnail or preview of the selected file.
* **File constraints:** Display any limits.
* **Submit & Reset buttons:** Submit to finalize; Reset to remove the file.
* **Disabled state:** Submit button should remain disabled until a valid file is selected.
### Fortune wheel task
The user interacts with a wheel spinner to receive a randomized reward.
**UX requirements:**
* **Instruction header:** Describe the action (e.g., "Spin to earn points").
* **Spinner wheel:** Central animated spinner with reward values clearly labeled.
* **Spin button:** Prominent CTA button below the spinner.
* **Result display:** Upon spin completion, show the earned reward.
### Scratch card task
The user is presented with a scratch card interface to reveal a randomized reward.
**UX requirements:**
* **Instruction header:** Communicate the task goal (e.g., "Scratch to earn").
* **Scratch UI:** Visually styled card grid with interactive scratch zones.
* **Prize pool info:** Show prize range or potential outcomes (e.g., 0, 100, 150, 200).
* **Reward feedback:** Visually reveal the prize after scratch.
* **Result summary:** Display total reward value (e.g., "Total reward: 200 Points").
### Watch YouTube task
The user must connect a YouTube account and complete a viewing task (e.g., watch a video).
**UX requirements:**
* **Instruction header:** Explain the viewing requirement (e.g., "Watch to earn 100 Points").
* **Login button:** Prominent CTA with the YouTube icon. Disabled until the Terms & Conditions checkbox is checked.
* **Terms & Conditions checkbox:** Required for login activation. Include linked text for both documents.
* **Post-login state:**
* Show embedded video player with required video.
* Display timer if set in task settings (e.g., "Timer: 59 / 100").
* Include visual progress bar synced with watch time.
* **Completion state:**
* Automatically completes after watch time is fulfilled.
* Lock input and update UI to reflect completion.
* **Responsiveness:** Video player, progress bar, and buttons should adapt seamlessly on mobile devices.
* **Fallback behavior:** Include error state if the video fails to load or embed.
# User progress UX requirements
Source: https://docs.claimr.io/ux-requirements/user-progress-ux-requirements
How to design clear and informative displays of user progress within Claimr, covering the logged-in and logged-out states and what to include in each.
## Understanding User progress
Displaying user progress is crucial for motivating users and encouraging continued participation in your campaigns. By showing users their achievements, points earned, and overall progress, you can create a more engaging and rewarding experience.
Users can be in one of two states:
* **Logged in:** When users are logged in, they see personalized information, such as their name, points, and progress bar. They also have the option to log out.
* **Logged out:** When users are not logged in, they see basic information and are encouraged to log in or sign up.
## Logged in state
This state should clearly indicate that the user is currently logged in to their account and provide relevant information and actions related to their profile and progress.
### 1. User name
* Display the user's name prominently to provide a personalized experience.
* Use a legible font and appropriate font size for easy readability.
### 2. User progress bar
* Visually represent the user's overall progress toward completing the campaign or quest.
* Choose an easily understandable progress indicator (e.g., bar, percentage).
* Use colors and animations to make the progress bar visually engaging and dynamic.
* Ensure the progress bar is accessible to screen readers and provides alternative text descriptions.
### 3. User points
* Show the accumulated points the user has earned within the campaign or quest.
* Use a clear numerical representation and label (e.g., "Points: 150").
* Display the points prominently, potentially using a larger font size or distinct color.
### 4. Log out button
* Allow users to log out of their account securely.
* Use clear labeling (e.g., "Log out") and consider using a recognizable icon.
* Typically located near the user's name or profile information.
* Implement a confirmation dialog to prevent accidental logouts.
## Logged out state
This state should clearly indicate that the user is not logged in and provide a clear path to log in or sign up.
### 1. Log in button
Include a prominent "Log in" button to allow existing users to access their accounts. This button should be visible and accessible.
### 2. Title
Display a clear and concise title that explains the purpose of the section. For example, you could use "Welcome to \[Campaign name]" or "Sign in to continue."
### 3. Brief description
Provide a brief explanation of the benefits of logging in or the features users can access once logged in. This could include things like:
* Accessing personalized campaigns and quests.
* Tracking progress and earning rewards.
* Connecting with other users.
### Additional considerations
* Use clear messaging and visual cues to differentiate this state from the logged-in state.
* Consider adding a "Sign up" button for new users, a preview of campaign features, or a link to your Privacy Policy.
* Hide personalized elements like the user's name, points, and progress bar until they are logged in.
# Assign webhooks
Source: https://docs.claimr.io/webhooks-guide/assign-webhooks
Assign Claimr's pre-defined webhooks to your applications, configure their settings, and test the integration before going live.
Claimr provides pre-defined webhooks that you can assign to send real-time data to your applications when specific events occur. This allows you to integrate Claimr with other systems and automate workflows.
## Webhook types
* **User activity hook**: Triggered when a user acts within a campaign (e.g., completes a task, claims a reward).
* **User login hook**: Triggered when a user logs in to Claimr.
* **User reward hook**: Triggered when a user claims a reward.
* **Referral hook**: Triggered when a referral-related event occurs (e.g., a new user signs up via a referral link).
## Assign a webhook
In your Claimr dashboard, go to the **API** section.
Find the webhook you want to assign (e.g., "User activity hook").
Click **Assign** next to the webhook. This will open an **Assign webhook** modal window.
Within the modal window, you'll configure the webhook settings:
* **ID**: A unique identifier for your webhook. It is automatically generated by Claimr but can be edited.
* **URL**: This is the URL of the external endpoint that will receive the webhook data. This must be a publicly accessible endpoint that can accept HTTP POST requests. You'll need to obtain this URL from the application you're integrating with.
* **Secret**: A secret key used to verify the authenticity of the webhook requests. When you set a secret, Claimr will use it to generate a signature that's included with each webhook request. Your receiving application should verify this signature to ensure the request came from Claimr and hasn't been tampered with.
* **Campaigns**: This section allows you to specify which campaigns this webhook applies to.
* If you leave this section empty (no checkboxes selected), the webhook will be triggered for *all* your campaigns.
* If you select one or more campaigns, the webhook will *only* be triggered for events within those specific campaigns.
Once you've filled in the configuration, click **Assign** to save the settings.
## Benefits of secret keys
By utilizing secret keys, Claimr provides a robust mechanism to ensure that your webhook communications are secure and reliable.
* **Data Integrity**: Ensures that the data received in webhook notifications has not been modified or corrupted during transmission.
* **Authentication**: Verifies that the webhook message originated from Claimr and not from a malicious actor.
* **Security**: Adds an extra layer of security to your webhook integration, protecting your campaign data from unauthorized manipulation.
## Testing your webhook
Claimr provides a built-in testing tool to verify that your webhook integration is working correctly before you go live. This allows you to simulate a webhook event and see the data that would be sent to your endpoint.
Navigate to the "API" section of your Claimr admin panel, find the webhook you want to test (e.g., "User activity hook"). You should see a testing area associated with that webhook.
Enter a valid Claimr User ID into the "User:" field.
Click the "Test" button. This will trigger a simulated `user_activity` event for the specified user.
* **Response Body**: Claimr will display the *exact* JSON payload that would be sent to your webhook endpoint in the "Response body:" section. Carefully review this data to ensure it matches the expected format and contains all the necessary information.
* **Response Result**: Claimr will also show a summary of the test result:
* **Success**: A boolean value (`true` or `false`) indicating whether Claimr was able to send the test message. Note that this only confirms that Claimr sent the message; it does not guarantee that your endpoint received it successfully.
* **Status**: The HTTP status code returned by your endpoint (if it was reached). A status code of `200` indicates success on your endpoint's side.
* **Data**: This will usually display a snippet of the response from *your* server. If your server is set up to return a confirmation message, you'll see it here. If your server returned an error, or if the request failed to reach your server, you might see an error message or HTML code here.
### Test example
Check an example of a successful test. The "Response body:" section displays the JSON payload that was sent.
Here's a breakdown of the fields in the example payload:
* **`id`**: A unique identifier for this specific webhook message.
* **`scope`**: Indicates the webhook was triggered by a user activity event.
* **`user`**: The ID of the user who performed the action.
* **`user_id`**: The ID of the user.
* **`wallet`**: The user's connected wallet address.
* **`email`**: The user's email address.
* **`campaign`**: Information about the campaign.
* **`id`**: The unique ID of the campaign.
* **`name`**: The name of the campaign.
* **`event`**: Details about the specific event.
* **`type`**: The type of event (an action was completed).
* **`data`**: Additional data about the event.
* **`account`**: The associated account.
* **`action`**: Information about the completed action.
* **`id`**: The action's ID.
* **`name`**: The action's name.
* **`type`**: The action's type.
* **`meta`**: The additional metadata.
* **`xp`**: The number of points awarded.
* **`total_xp`**: The user's total points.
* **`ref_xp`**: Points earned from referrals.
* **`ugc_xp`**: Points earned from user-generated content.
* **`xp_mul`**: The points multiplier.
* **`rank`**: The user's rank.
* **`team`**: The user's team.
The "Response result:" section shows `Success: true` and `Status: 200`, indicating that the test message was sent successfully and your endpoint (presumably) responded with a success code.
The testing tool simulates the webhook event from Claimr's side. It's still important to ensure your endpoint is correctly configured to receive and process the webhook data.
# Webhooks
Source: https://docs.claimr.io/webhooks-guide/overview
Learn how Claimr webhooks deliver real-time updates to your applications, enhancing efficiency and user engagement.
## Understanding webhooks and endpoints
Webhooks are a powerful tool for staying informed about real-time events happening within your Claimr campaigns. They provide an efficient way to receive instant updates, allowing your application to react dynamically to user actions and provide a more personalized experience.
#### What is a webhook?
A webhook is an automated message that Claimr sends to your application whenever a specific event occurs in your campaigns. Instead of your application constantly checking for new information (a process called "polling"), Claimr proactively notifies you when something important happens, such as a user completing a task or claiming a reward.
Webhooks in Claimr have an organization-wide scope. This means that any user activity within your entire organization, across all associated campaigns, will trigger a notification to your registered endpoint.
#### What is an endpoint?
To receive these webhook messages, you need to set up a dedicated URL on your server, called an endpoint. This endpoint acts as the receiving address where Claimr can deliver these real-time updates. It's important to ensure that your endpoint is properly configured to receive and process incoming data.
#### Why use webhooks?
Webhooks offer several advantages over traditional polling methods:
* **Real-time updates**: Get instant notifications about important events, enabling your application to react quickly and provide timely feedback to users.
* **Efficient data handling**: Receive only the data you need, when you need it, reducing unnecessary data transfer and processing.
* **Reduced polling**: Eliminate the need for your application to continuously check for updates, saving resources and improving performance.
To dive deeper into specific aspects of webhooks in Claimr, check out our detailed articles.
Register, configure, and test webhooks in Claimr.
Understand the different webhook scopes and the events they cover.
# Set up webhooks
Source: https://docs.claimr.io/webhooks-guide/set-up-webhooks
Step-by-step guide on registering, configuring, and testing webhooks in Claimr, including secret keys, payloads, and retry policy.
## Register and configure webhooks in Claimr
To receive real-time updates from Claimr, you first need to register a webhook. This involves providing Claimr with the URL of your endpoint (where you want to receive the data) and defining the scope of events you're interested in.
You can register a webhook through the [Claimr API documentation](/api-reference/webhooks/set-webhook).
1. **Access webhooks section**: Navigate to the webhooks section within the Claimr API documentation.
2. **Set up POST request**: You'll typically use a POST request to register a new webhook.
3. **Define request body**: In the request body, you'll provide the following information:
* **`scope`**: Specify the type of events you want to receive updates for (e.g., `user_activity`).
* **`url`**: Provide the URL of your endpoint.
* **`secret`** (optional): Include a secret key for added security.
* **`hook_id`** (optional): Assign a unique ID to your webhook for easy identification.
**Request body example**
```json theme={"dark"}
{
"scope": "user_activity",
"url": "https://your-endpoint-url.com",
"secret": "your-secret-key",
"hook_id": "your-webhook-id"
}
```
### Benefits of secret keys
By utilizing secret keys, Claimr provides a robust mechanism to ensure that your webhook communications are secure and reliable.
* **Data Integrity**: Ensures that the data received in webhook notifications has not been modified or corrupted during transmission.
* **Authentication**: Verifies that the webhook message originated from Claimr and not from a malicious actor.
* **Security**: Adds an extra layer of security to your webhook integration, protecting your campaign data from unauthorized manipulation.
**Secret key example**
```javascript theme={"dark"}
const payload = JSON.stringify(data);
const signature = crypto.createHmac('sha256', secret).update(payload).digest('hex');
...
'x-claimr-signature': signature
```
## Real-time activity tracking
Once you've set up a webhook, Claimr will instantly send updates to your endpoint whenever a relevant event occurs within your campaigns. This allows your application to track user activity in real-time and respond accordingly.
**Example scenario**
Let's say a user logs in to your campaign and starts completing tasks. As the user interacts with your campaign (e.g., completes a "reCAPTCHA" task), Claimr will immediately send a webhook notification to your endpoint with detailed information about the user's activity.
### Webhook payload
The webhook payload will contain a wealth of information, including:
* A unique ID for the action (`"id": "lisjywHXKAq6yQe2bH6Pd"`)
* The user's ID (`"user": "23945872938472"`)
* The user's connected wallet and email (if applicable)
* The campaign ID and name (`"campaign": { "id": "sue7r1vO", "name": "Test campaign" }`)
* Details about the specific event, such as the task ID, type, and name (`"event": { "type": "action_completed", "data": { "action": { "id": "_g06CbGQ", "name": "reCAPTCHA", "type": "recaptcha" } } }`)
### How to use this data
You can utilize this real-time data to:
* Update user progress and rewards within your own applications.
* Trigger personalized notifications or messages based on user actions.
* Track campaign performance and identify areas for improvement.
* Integrate with other tools and services (e.g., send data to analytics platforms or trigger actions in Zapier).
## Test your webhook
Claimr allows you to test your webhook setup to ensure it's working correctly.
In the API section of your Claimr admin panel, you'll find a dedicated area for testing webhooks.
Enter a test User ID in the provided field.
Click the **Test** button to send a simulated user activity event to your webhook endpoint.
Claimr will display a response indicating whether the test message was successfully sent. You should also check your endpoint to confirm that it received the data.
### Test example
This example shows the detailed information included in a webhook payload, such as user data, campaign details, event type, and associated points and rewards.
```json theme={"dark"}
{
"id": "lisjywHXKAq6yQe2bH6Pd",
"scope": "user_activity",
"user": "23945872938472",
"wallet": "",
"email": "",
"campaign": {
"id": "sue7r1vO",
"name": "Test campaign"
},
"event": {
"type": "action_completed",
"data": {
"action": {
"id": "_g06CbGQ",
"name": "Test action",
"type": "test_action"
},
"xp": 100
}
},
"total_xp": 1500,
"ref_xp": 50,
"ugc_xp": 25,
"xp_mul": 1.1,
"rank": 1,
"team": "red pill"
}
```
### Explanation of the fields
* **`id`**: A unique identifier for this specific webhook message.
* **`scope`**: Indicates the type of event that triggered the webhook (e.g., `user_activity`).
* **`user`**: The ID of the user who performed the action that triggered the webhook.
* **`wallet`**: The user's connected wallet address, if applicable.
* **`email`**: The user's email address, if available.
* **`campaign`**: Contains information about the campaign where the action occurred, including:
* **`id`**: The unique ID of the campaign.
* **`name`**: The name of the campaign.
* **`event`**: Details about the specific event that triggered the webhook, including:
* **`type`**: The type of event (e.g., `action_completed`, `quest_completed`).
* **`data`**: Additional data related to the event, such as:
* **`action`**: Information about the completed action, including its ID, name, and type.
* **`xp`**: The number of experience points awarded for completing the action.
* **`total_xp`**: The user's total accumulated experience points.
* **`ref_xp`**: The amount of XP the user has earned from referrals.
* **`ugc_xp`**: The amount of XP the user has earned from user-generated content.
* **`xp_mul`**: The multiplier applied to the XP earned for this action.
* **`rank`**: The user's current rank in the campaign leaderboard.
* **`team`**: The user's team, if applicable.
## Configuring multiple endpoints
In Claimr, you can configure multiple endpoints for a single webhook. Each endpoint will receive the same webhook payload whenever the associated event is triggered. When registering a webhook, you can provide a list of endpoint URLs instead of just one.
**Why use multiple endpoints?**
* Mirroring data to multiple servers for redundancy.
* Sending different types of data to different applications or services.
* Integrating with multiple analytics or monitoring tools.
If you're using multiple endpoints for the same scope, it's recommended to assign a unique `hook_id` to each webhook for easier management and tracking.
## Retry policy
In situations where your server may experience temporary downtime or unresponsiveness, Claimr employs a retry policy to ensure the reliable delivery of webhook notifications.
### Understanding retry policy
A retry policy is a mechanism that attempts to redeliver webhook messages if the initial delivery attempt fails due to server unavailability. Claimr's retry policy utilizes increasing intervals between attempts, allowing time for your server to recover and become responsive.
### Claimr's retry intervals
* **First retry**: 5 seconds after the initial attempt.
* **Second retry**: 30 seconds after the first retry.
* **Third retry**: 1 minute after the second retry.
* **Final retry**: 5 minutes after the third retry.
## Undelivered events
If all retry attempts prove unsuccessful, the event will be recorded as undelivered. This allows you to investigate potential issues and take necessary action to ensure future notifications are delivered successfully.
# Webhook scopes
Source: https://docs.claimr.io/webhooks-guide/webhook-scopes
Explanation of the different webhook scopes in Claimr and the events they cover, so your application only receives relevant updates.
Webhook scopes allow you to define the specific types of events that trigger notifications from Claimr to your application. This gives you granular control over the information you receive, ensuring your application only receives relevant updates.
## Webhook scopes in Claimr
**`user_activity`**: This scope covers a wide range of user actions within your Claimr campaigns, such as:
* **Task Completion**: When a user successfully completes a task within a quest.
* **Quest Completion**: When a user completes an entire quest.
**`user_reward`**: This scope focuses on events related to users receiving rewards, including:
* **Reward Allocation**: When a user receives a reward for completing a task, quest, or other action.
**`referral`**: This scope covers events related to user referrals, including:
* **Referral Join**: When a new user joins your campaign through a referral link.
* **Referral Action**: When a referred user completes an action within your campaign (which may result in bonus points for the referrer).
**`user_login`**: This scope focuses on user authentication events:
* **Sign-in**: When a user logs in to your campaign using any supported method (e.g., wallet, Twitter, Discord).
## Choosing the right scope
The appropriate scope for your webhook depends on the specific needs of your application.
* If you need to track all user activity within your campaigns, the `user_activity` scope is a good choice.
* If you're primarily interested in reward-related events, use the `user_reward` scope.
* For referral tracking, choose `referral`.
* If you want to monitor user login and logout events, the `user_login` scope is most suitable.
**Example:**
The `user_login` scope is particularly useful for integrations with tools like Zapier. By tracking user login events, you can trigger automated workflows in Zapier, such as adding new users to your email list or CRM system.
If you have questions about specific webhook scopes or need further clarification, please refer to the Claimr [API documentation](/api-guide/overview) or contact our support team.
# Framer integration
Source: https://docs.claimr.io/widget/claimr-widget-integrations/framer-integration
Set up a frame and configure a Code Override to embed the Claimr widget into your Framer designs.
Integrating your Claimr widget into Framer allows you to seamlessly display your interactive content within your Framer designs. This guide will walk you through the process, which involves setting up a frame and configuring a Code Override to embed the widget.
## Create a frame in Framer
In Framer, everything begins with a frame. This frame will serve as the container for your Claimr widget.
* Create a new **Frame** in your Framer project.
* You can style this frame as needed, or leave it with default styling.
## Access Code overrides
To embed the Claimr widget, you will use Framer's Code Overrides feature, which allows you to extend component functionality with custom code.
* Select your newly created Frame.
* In the right-hand properties panel, scroll down and open the **Code Overrides** tab at the bottom.
* Click the **+** button to add a new file. If no override file exists, you will be prompted to create one.
## Create the Override File
This file will contain the custom code necessary to initialize and load your Claimr widget.
Name your file (for example, `claimrIntegration.tsx`) and click **Create**. In the newly opened code editor, paste the override code for your integration. This code sets up the mechanism to load the Claimr widget.
## Edit the Override Code
You will need to modify the override file to include specific `data-` attributes that define your Claimr widget's behavior and link it to your campaign.
Replace the contents of the override file with the code below, then fill in the values from your Claimr embed code:
* `data-organization`: Your organization ID.
* `data-campaign`: Your campaign ID.
* `data-container`: The ID of the element the widget renders into. The override gives your frame this ID, so you can keep the default value.
The script tag's ID must stay exactly `claimr-script`: the script reads its settings from the element with that ID.
**Example of an override function**
```tsx theme={"dark"}
import type { ComponentType } from "react"
import { useEffect } from "react"
const CLAIMR_CONTAINER_ID = "claimr-widget"
function loadClaimr() {
// Load the script once, even if the page renders the frame more than once.
if (document.getElementById("claimr-script")) return
const script = document.createElement("script")
script.id = "claimr-script"
script.src = "https://widgets.claimr.io/claimr.min.js"
script.setAttribute("data-organization", "YOUR_ORGANIZATION_ID")
script.setAttribute("data-campaign", "YOUR_CAMPAIGN_ID")
script.setAttribute("data-container", CLAIMR_CONTAINER_ID)
script.setAttribute("data-autoresize", "true")
document.body.appendChild(script)
}
export function withClaimr(Component): ComponentType {
return (props) => {
useEffect(loadClaimr, [])
// The widget renders inside the element whose ID matches data-container.
return
}
}
```
## Link override to your frame
After editing the override code, you need to apply it to your specific Framer frame.
* In the **Layers** tab, select the Frame you created before.
* In the **Code Overrides** section of the right-hand properties panel, select your newly created file.
* From the function dropdown, choose `withClaimr`.
## Finalize and publish your project
Once the override is linked, save your changes and publish the project to see the integrated widget.
* Framer typically autosaves your changes. Ensure all modifications are saved.
* Click **Publish** to deploy your project.
* Verify on the published page that the Claimr widget is successfully integrated and functioning correctly within your Framer design.
# Google Analytics Client ID
Source: https://docs.claimr.io/widget/claimr-widget-integrations/google-analytics-client-id
Enhance your Claimr widget's Google Analytics integration by passing the GA4 Client ID for more accurate, cross-session user tracking.
## Why Client ID?
Claimr can automatically retrieve the Google Analytics Client ID for more accurate user tracking within your widget. This provides a more complete picture of user behavior in your Google Analytics 4 reports.
* **Improved cross-session tracking:** Accurately track user behavior even if they close and reopen the browser or switch devices.
* **More accurate user counts:** Avoid counting the same user multiple times.
* **Richer data in Google Analytics:** Get a complete picture of user engagement within your Claimr widget.
## Automatic Client ID retrieval (recommended)
Once you integrated your Claimr widget with Google Analytics 4 (using either the `data-ga4` attribute in your embed script or the `ga4` URL parameter, as described in [Google Analytics integration](/widget/claimr-widget-integrations/google-analytics-integration)), Claimr usually finds the Client ID automatically.
How it works: Claimr checks for the standard Google Analytics cookie (`_ga`). This cookie contains the Client ID in the format `GA1.1.USER_ID`. Claimr extracts the `USER_ID` portion and uses it for tracking. You generally do not need to add any extra code.
## Manual Client ID passing (alternative)
If the automatic retrieval doesn't work, or if you need more control, you can manually pass the Client ID using a URL parameter:
* Add `?ga4cid=USER_ID` to your Claimr campaign URL, replacing `USER_ID` with the actual Client ID from the `_ga` cookie.
**Example**
```
https://campaign?ga4cid=123456789.987654321
```
Replace `123456789.987654321` with the actual Client ID and `https://campaign` with your base campaign URL.
## Verification
To check the integration, you can use tools from Google Analytics.
# Google Analytics integration
Source: https://docs.claimr.io/widget/claimr-widget-integrations/google-analytics-integration
Integrate the Claimr widget with Google Analytics 4 using the data-ga4 embed script attribute or a URL parameter.
Claimr supports two methods for integrating with GA4:
## Method 1: Using the data-ga4 attribute in the embed script
This is the recommended method for most implementations. You add your GA Measurement ID (which looks like `G-XXXXXXXXXX` or `GA4-KEY`) directly to the Claimr embed script.
* Log in to your Google Analytics account.
* Go to the Admin section.
* In the Property column, select your GA property.
* Click on "Data streams," then select your web data stream.
* Your Measurement ID will be displayed at the top. It typically starts with "G-".
For detailed instructions, see Google's documentation: [Find your Google tag ID](https://support.google.com/analytics/answer/9539598?hl=en).
Add the `data-ga4` attribute to your Claimr script tag, replacing `"GA4-KEY"` with your actual Measurement ID:
```html theme={"dark"}
```
Make sure you replace `ORGANIZATION_NAME`, `CAMPAIGN_NAME`, and `CLAIMR_CONTAINER_ID` with your actual values.
## Method 2: Passing the GA4 Key in the URL
This method is useful if you cannot directly modify the embed script, or if you need to dynamically change the GA4 Measurement ID.
1. **Find your GA4 measurement ID:** (Same as Method 1)
2. **Construct the URL:** Add the `ga4` parameter to your Claimr campaign URL, replacing `"GA4-KEY"` with your actual Measurement ID:
```html theme={"dark"}
https://campaign?ga4=GA4-KEY
```
## Verifying GA4 integration
After implementing either method, you should start seeing events from your Claimr widget in your GA4 Realtime reports. It may take a few minutes for data to appear. You can use the Realtime view to test if events are being tracked correctly.
# Google Tag Manager integration
Source: https://docs.claimr.io/widget/claimr-widget-integrations/google-tag-manager-integration
Use GTM to manage your Claimr tracking and other marketing tags without directly modifying your website's code.
Google Tag Manager provides a centralized platform for managing tracking codes (tags) for various services, including Google Analytics, advertising platforms, and more.
Claimr supports two methods for integrating with GTM:
## Method 1: Using the data-gtm attribute in the embed script
This method is the most straightforward and is recommended for most setups. You add your GTM Container ID (which looks like `GT-XXXXXXXXX`, `G-XXXXXXXXX`, or `AW-XXXXXXXXX`) directly to the Claimr embed script.
* Log in to your Google Tag Manager account.
* Select the container you want to use for your Claimr widget.
* Your Container ID will be displayed prominently on the container's overview page (e.g., `GT-XXXXXXX`).
For more detailed instructions, refer to Google Tag Manager's documentation: [Set up and install Tag Manager](https://support.google.com/tagmanager/answer/6103696?hl=en).
Add the `data-gtm` attribute to your Claimr script tag, replacing `"GTM-TAG"` with your actual GTM Container ID:
```html theme={"dark"}
```
Replace `ORGANIZATION_NAME`, `CAMPAIGN_NAME`, and `CLAIMR_CONTAINER_ID` with actual values.
## Method 2: Passing the GTM container ID in the URL
This method is useful if you can't directly modify the embed script or if you need to dynamically change the GTM Container ID.
1. **Find your GTM Container ID:** (Same as Method 1)
2. **Construct the URL:** Add the `gtm` parameter to your Claimr campaign URL, replacing `"GTM-TAG"` with your actual GTM Container ID:
```
https://campaign?gtm=GTM-XXXXXXX
```
Replace `https://campaign` with your actual Claimr campaign URL.
## Verifying GTM integration
After implementing either method, you'll need to configure your Claimr events *within* Google Tag Manager. This typically involves creating:
1. **Triggers:** These define *when* to fire a tag (e.g., when a specific Claimr event occurs).
2. **Tags:** These send data to your analytics or marketing platforms (e.g., a Google Analytics 4 event tag).
3. **Variables**
View our documentation for the specific event names and data that are available for tracking.
Once your GTM configuration is complete and published, you should start seeing Claimr events in your connected platforms (e.g., Google Analytics). Use the Real-time reports in those platforms to verify that data is being received correctly.
# Hotjar integration
Source: https://docs.claimr.io/widget/claimr-widget-integrations/hotjar-integration
Integrate Hotjar with the Claimr widget by passing your Hotjar Site ID via a URL parameter to capture session recordings and heatmaps.
## Integration steps
Integrate Hotjar by passing your Hotjar Site ID (`hjid`) via a URL parameter.
* Log in to your Hotjar account.
* Go to "Sites & Organizations".
* Your Site ID (`hjid`) will be listed next to your site.
For detailed instructions, refer to Hotjar's documentation: [Where can I find my Hotjar Site ID?](https://help.hotjar.com/hc/en-us/articles/4403117281815-Where-can-I-find-my-Hotjar-Site-ID-).
Add the `hjid` parameter to your Claimr campaign URL, replacing `"HOTJAR_CAMPAIGN_ID"` with your actual Hotjar Site ID:
```
https://campaign?hjid=HOTJAR_CAMPAIGN_ID
```
## Verifying Hotjar integration
After adding the `hjid` parameter, go to your Hotjar dashboard and check if data is being collected for your site. You should be able to see recordings, heatmaps, and other Hotjar features working within the Claimr widget.
# HTML integration
Source: https://docs.claimr.io/widget/claimr-widget-integrations/html-integration
A short, structured instruction set for integrating the Claimr widget into a static HTML website.
This guide provides a short, structured instruction set for integrating your Claimr widget into a static HTML website.
Start by opening the HTML file for your website. You should have a basic site structure already in place, including ``, ``, and `` sections, along with any existing content elements.
Create an HTML element where your Claimr widget will be embedded. This element will serve as the widget's container.
* You can use any suitable HTML element, typically a ``.
* Assign a unique `id` to this container.
**Example:**
```html theme={"dark"}
```
Next, you will add the Claimr embed script into your HTML file.
1. Go to your Claimr account to copy the embed script for your campaign.
2. Paste this `
```
## Finalize integration
After making these changes:
* Save your HTML file.
* Refresh your web page.
The Claimr widget will now be successfully connected and displayed on your site.
# Claimr widget integrations
Source: https://docs.claimr.io/widget/claimr-widget-integrations/overview
Integrate third-party marketing and analytics platforms with the Claimr widget to extend its functionality and gain insights into user behavior.
The Claimr widget integrates with various third-party marketing and analytics platforms to enhance functionality and provide insights into user behavior. These integrations allow you to connect your Claimr campaigns with the tools you already use, extending the power of both.
Since the Claimr widget runs in its own separate area (an iframe), you'll need to take a few extra steps to connect it with other tools. This makes sure data is shared correctly.
To see details about our integrations and for step-by-step instructions, see the dedicated articles below.
Send widget events to your GA4 property.
Improve cross-session tracking accuracy by passing the GA4 Client ID.
Manage Claimr tracking and other marketing tags through GTM.
Capture session recordings and heatmaps of widget interactions.
Embed the Claimr widget into your Webflow site.
Embed the Claimr widget into your Framer site using a Code Override.
Embed the Claimr widget into a static HTML website.
## Troubleshooting
If you encounter problems, start with these troubleshooting steps. These common fixes can resolve many integration issues.
* **Double-check ID:** Verify that you have correctly entered any platform-specific IDs (like GA4 Measurement ID, Hotjar Site ID, etc.). A simple typo can prevent the integration from working.
* **Clear your cache:** Clear your browser cache and any server-side caching. Outdated cached files can sometimes interfere with the integration process.
* **Iframe restrictions:** Some browser settings or security configurations might interfere with iframe communication. If you're having trouble, try testing in a different browser or adjusting your browser's security settings.
* **Contact Claimr support:** Reach out for assistance if you've tried these steps and are still experiencing issues. The Claimr support team can provide tailored guidance.
# Webflow integration
Source: https://docs.claimr.io/widget/claimr-widget-integrations/webflow-integration
Set up the HTML elements and script attributes needed to embed the Claimr widget into your Webflow site.
This guide will walk you through the process of embedding your Claimr widget into your Webflow site. You'll set up the necessary HTML elements and configure the widget script to display correctly.
## Get Claimr's embed code
First, retrieve the embed code for your specific Claimr campaign.
Navigate to your campaign in Claimr.
Click **Publish** in the upper right corner.
Click **Get embed code**.
Copy the provided `
```
In this example:
* **`data-organization`** and **`data-campaign`**: Select which organization and campaign the widget loads.
* **`data-container`**: The ID of the element the widget renders into.
* **`data-language`**: Opens the widget in French.
Keep `id="claimr-script"` exactly as it is. The script reads its attributes from the element with that ID, so a script tag with any other ID does not load the widget.
## List of data attributes
This section lists all supported `data-*` attributes for the Claimr widget. Add them to the script tag (or to the `` tag where specified) to control the widget's behavior, appearance, or user experience.
Attributes marked with an asterisk `*` are required or applied by default.
### Default attributes
| Attribute | Description | Accepted Values | Example |
| - | - | - | - |
| `data-organization*` | Unique ID of your organization. Ensures correct widget settings. | String | `my-awesome-org` |
| `data-campaign*` | ID of the specific campaign to display. | String | `giveaway-2025` |
| `data-container*` | ID of the HTML element where the widget will render. | Element ID (string) | `claimr-widget-container` |
| `data-autoresize*` | Automatically adjusts the container height to fit the widget. Any value turns it on, including `false`. To turn it off, remove the attribute. | `true` | `true` |
### Feature control
| Attribute | Description | Accepted values | Example value |
| - | - | - | - |
| `data-theme` | Applies a predefined visual theme. | Theme name (string) | `dark-mode` |
| `data-theme-key` | `localStorage` key to read the theme from, kept in sync automatically if the value changes. Takes priority over `data-theme` when set. | String | `app-theme` |
| `data-language` | Sets the widget's display language. | Language code (string) | `en` |
| `data-debug` | Outputs debug information in browser console. You can also add `?dcl=1` to the page URL. | `true` | `true` |
| `data-ga4` | Google Analytics 4 Measurement ID for event tracking. | GA4 Measurement ID (string) | `G-XXXXXXXXXX` |
| `data-gtm` | Google Tag Manager Container ID for GTM integration. | GTM Container ID (string) | `GTM-XXXXXXX` |
### Advanced integration
| Attribute | Description | Accepted values | Example value |
| - | - | - | - |
| `data-headless` | Enables headless mode (functionality without UI). | true or false | `true` |
| `data-platform` | Declares the main platform environment (e.g., web). | String | `telegram` |
| `data-sub-platform` | More specific platform context (e.g., Telegram, TrustWallet). | String | `trustwallet` |
| `data-device` | Indicates user's device type (affects layout). | String (mobile, desktop, etc.) | `mobile` |
| `data-user-token` | Authenticated user token for secure sessions. | String | `abc123xyz789` |
| `data-env` | Declares the current environment. | dev, prod | `dev` |
### Contextual display settings
| Attribute | Description | Accepted values | Example value |
| - | - | - | - |
| `data-show-tags` | Shows quests and groups that have any of these tags. See [Tag-based customization](#tag-based-customization). | Comma-separated tags | `beta_testers` |
| `data-hide-tags` | Hides quests and groups that have any of these tags. See [Tag-based customization](#tag-based-customization). | Comma-separated tags | `new,vip` |
| `data-route` | Sets the initial route within the widget. | Internal route path | `/quests/winter-challenge` |
| `data-quest` | Loads a specific quest on widget load. | Quest ID (string) | `quest_id_abc123` |
| `data-ref` | Referral code or user identifier. | String | `ref_friend_xyz` |
| `data-groups` | Filters visible groups by IDs. | Comma-separated Group IDs | `group_alpha,group_beta` |
| `data-contest-id` | Links widget to a specific contest by ID. | Contest ID (string) | `spring_contest1` |
| `data-user-ref-id` | Attributes the visit to a specific referring user, in addition to `data-ref`. | String | `user_123` |
| `data-user-ref-tag` | Optional tag to further classify the referral set with `data-user-ref-id`. | String | `campaign_launch` |
### Pre-quest badge
The SDK includes a built-in badge, award toasts, and claim button for [pre-quests](/sdk-guide#pre-quests): rewards visitors bank on your site before they sign in. These attributes configure it. You can change the same settings at runtime with the [`configure_pre_quest()`](/sdk-guide#pre-quests) SDK method.
| Attribute | Description | Accepted values | Example value |
| - | - | - | - |
| `data-pre-quest` | Turns the badge and toasts on or off. On by default. | `true` or `false` | `false` |
| `data-pre-quest-position` | Corner of the page the badge sits in. Defaults to `bottom-right`. | `top-left`, `top-right`, `bottom-left`, `bottom-right` | `bottom-left` |
| `data-pre-quest-icon` | Image shown on the badge and toasts. | URL (absolute, relative, or `data:`) | `/images/coin.svg` |
| `data-pre-quest-template` | Toast text. Supports the `{amount}`, `{type}`, and `{reason}` placeholders. | String | `+{amount} {type} for {reason}` |
| `data-pre-quest-duration` | How long an award toast stays visible, in milliseconds. Defaults to `4000`. | Number | `6000` |
| `data-pre-quest-claim-url` | Page where visitors sign in and collect their rewards. Adds a claim button to the badge. The page must render the widget. | URL | `/quests` |
| `data-pre-quest-claim-label` | Claim button text. Defaults to `Claim rewards`. | String | `Collect your XP` |
| `data-pre-quest-claim-target` | Link target for the claim button. Defaults to `_blank`. | `_blank`, `_self` | `_self` |
| `data-pre-quest-claim-threshold` | Minimum banked XP before the claim button appears. Defaults to `0`. | Number | `100` |
| `data-pre-quest-bg` | Background color of the badge and toasts. | CSS color | `#111827` |
| `data-pre-quest-color` | Text color of the badge and toasts. | CSS color | `#ffffff` |
| `data-pre-quest-accent` | Accent color of the badge and toasts. | CSS color | `#facc15` |
## Tag-based customization
Personalize the user experience by dynamically showing or hiding Quests and Groups using tags. First, assign tags to your Quests/Groups in the Claimr admin panel. Then, use these `data-` attributes in your widget script to control their visibility:
* **`data-hide-tags`**: This attribute hides Quests or Groups tagged with any of the comma-separated tags provided. For example, if a Quest Group in your admin panel is tagged `new`, adding `data-hide-tags="new"` to your script will hide that specific group:
```html theme={"dark"}
```
* **`data-show-tags`**: Conversely, this attribute is used to show Quests or Groups tagged with any of the listed comma-separated tags. This is useful if certain content is hidden by default or by other conditions and you want to make it visible for specific users (e.g., `data-show-tags="beta_testers"`).
Using these attributes activates Claimr's tag system. The widget receives the "show" or "hide" tags from your script, compares them against the tags on your content elements, and adjusts visibility accordingly. This enables targeted experiences like geo-restrictions or A/B testing.
# Widget configurations
Source: https://docs.claimr.io/widget/widget-configurations
Configure the Claimr widget to highlight specific components, adjust layouts, and personalize how quests, tasks, challenges, and leaderboards are displayed.
The widget is the interface where users interact with quests, tasks, challenges, and leaderboards. It defines how campaign content is displayed and how users track their own progress.
You can configure the widget to highlight specific components, adjust layouts, and add personalization.
To access widget settings:
1. Go to **Campaigns**.
2. Select the campaign you want to configure.
3. Open the **Customization** menu.
4. Select **Widget settings**.
## User progress
User progress settings control whether users can see their own progress, switch accounts, or view profile details inside the widget. These options affect how much visibility and control users have over their activity and identity in the campaign.
**Show user progress toggle**
* When enabled, users see their current progress at the top of the widget.
* Recommended if you want to motivate users with visible feedback.
* Can be disabled if you prefer a minimal, distraction-free widget.
**Show logout button**
* Allow users to log out from the widget when they want to disconnect their account or switch to a different one.
**Enable user profile pop-up**
* Opens a popup with user profile details.
* Useful when campaigns use profile-based data.
* Can be disabled for simple use cases where profile data is not needed.
## Localization
Localization settings control whether users can select their preferred language directly in the widget. This allows the widget interface to adapt to different audiences without requiring changes in campaign setup.
For more details about configuring multiple languages in campaigns, read our article on [Localization](/localization).
## Shortcuts
Shortcuts provide fast access to selected quests. Use this section to decide whether shortcuts should appear in the widget and how they are displayed.
If you enable **Use shortcuts**, an additional section appears in the widget with highlighted quests. You can then choose a display mode:
* Default - Compact layout for shortcuts.
* Quest card view - Full card layout, matching the style of other quest cards.
## Challenges
Challenges display in the widget as a separate content type, distinct from quests. Use this section to control how challenge cards are arranged.
If you enable **Show challenges**, challenge cards become visible in the widget. You can then adjust their layout:
* Wrap challenge cards - Resize and wrap cards to fit the widget width.
* Left-align challenge cards - Align all challenge cards to the left edge.
## Groups
Groups control how quests are displayed and organized within the widget. You can adjust the layout, alignment, navigation, and handling of completed quests.
**Quest cards layout**
Choose how quest cards are arranged in a group layout:
* Single row - all quests are shown in a single horizontal row.
* Wrap cards - quests wrap into multiple rows when space runs out.
**Card alignment**
Align quest cards to the center or left inside a single-row group.
**Slider arrows**
Display horizontal navigation arrows when quest cards are in a single row.
**Layout style**
Present quests as grouped tabs or as a single inline list.
* Tabs - quests are grouped under selectable tabs.
* Inline - all quests are shown in a continuous list.
**Group names**
Show or hide the names of quest groups above their quests.
* Enable - displays the name of each quest group above its quests.
* Disable - hides group names for a cleaner layout.
**Quest open mode**
Select how quest details are shown: within the same view or in a pop-up.
* Available only if Layout style is set to Tabs.
* Options: Popup or Inline.
**Inline quest countdown**
Enable inline quest countdown.
* Available only if Layout style is set to Tabs and Quest open mode is set to Inline.
**Wrap completed quests**
Group completed quests visually or display them alongside active quests in the same layout.
**Reorder completed quests**
Automatically move completed quests to the end of their group.
**Completed quests group**
Show all completed quests separately from active ones.
**Reorder quest groups**
Move groups with completed quests to the bottom of the widget.
## Leaderboard
The leaderboard displays top participants inside the widget.
**Leaderboard**
Display a leaderboard panel inside the widget to showcase top participants.
**Collapsed view**
Show only top participants by default in a minimized leaderboard layout.
**Display mode**
Select how the leaderboard is shown: within the same view or in a pop-up.
## Tasks
Tasks control how individual quest tasks are displayed inside the widget.
**Collapsible tasks**
Allow users to expand or collapse individual task cards.
**Task order**
Prioritize active tasks by automatically moving completed ones to the bottom of the list.
## More quests
The More quests section adds an extra section with additional quests at the end of the current view.
**Card alignment**
Align extra quest cards to the center or left inside the active quest layout.
**Slider arrows**
Display arrows to navigate through quest cards.
## Popups
Use popups to notify users about task completions.
**Completed task pop-up**
Use a pop-up message to notify users when a task is completed.
## Additional components
Additional components provide extra context and engagement features within the quest widget.
**Quest progress bar**
Show user progress based on completed tasks in the quest.
**Quest participants count**
Display the number of users currently participating in the quest.
## Close button
**Custom Close button**
Choose which button appears for closing quests.
**Button view**
* Go back - displays a back arrow icon that returns the user to the previous view.
* Close icon - displays an X icon that closes the view.
# Widget themes
Source: https://docs.claimr.io/widget/widget-themes
Use themes to match the Claimr widget to your brand, switch appearance automatically, and keep light and dark modes consistent with your product.
Use themes to customize the visual appearance of the Claimr widget on your platform.
Custom themes let you:
* Match the widget to your brand or app styling
* Automatically switch appearance based on user preferences
* Keep dark mode and light mode consistent with your product
* Reuse the same widget across campaigns with different visual identities
Inside the Claimr platform, the Theme tab in the widget preview lets you toggle between Light and Dark. These are the default base styles, which you can use for quick testing.
However, this toggle does not affect your live widget. The final theme applied is always controlled by you - via the `set_theme()` method on your platform.
## Apply a theme via method
To dynamically apply a theme to the Claimr widget, use the following SDK method in your code:
```javascript theme={"dark"}
window.claimr.set_theme("your_theme_name")
```
The `set_theme()` method accepts a string as a parameter - the name of your custom theme. This injects the value as a `data-theme` attribute into the `` of the widget iframe.
Once applied, your CSS can target this attribute to apply theme-specific styles, giving you full control over the widget's appearance.