> For the complete documentation index, see [llms.txt](https://docs.fuul.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fuul.xyz/core-concepts/types-of-rewards.md).

# Types of Rewards

Fuul supports two reward types, each with different distribution mechanics:

|                  | Tokens                                                                                                                    | Points                               |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |
| **Distribution** | Onchain via voucher system                                                                                                | Offchain, automatic                  |
| **Claiming**     | User claims with an onchain transaction. Projects can also claim on behalf of users or sponsor gas for claim transactions | No claim needed — credited instantly |
| **Networks**     | Any EVM or SVM chain                                                                                                      | Offchain (no chain required)         |
| **Gas costs**    | User pays gas to claim (unless the project sponsors gas or claims on behalf)                                              | None                                 |
| **Data access**  | SDK + Subgraph                                                                                                            | SDK only                             |

## Tokens (Onchain Rewards)

Token rewards are distributed using a voucher-based claiming system powered by Fuul's V2 protocol contracts.

### How it works

1. **User performs a qualifying action** (swap, deposit, referral, etc.)
2. **Fuul calculates the reward** based on your program's incentive rules
3. **A signed claim check (voucher) is generated** — containing the recipient address, token amount, and cryptographic signature
4. **User claims onchain** by submitting a transaction that verifies the signature and releases the tokens from your program's smart contract

{% hint style="success" %}
Projects can also **claim on behalf of users**, sending rewards directly to user wallets without requiring any action from the end user. This can be done from the dashboard or via the contract.
{% endhint %}

### Benefits of the voucher model

| Benefit                 | Description                                                                |
| ----------------------- | -------------------------------------------------------------------------- |
| **No wasted budget**    | Unclaimed rewards stay in your contract — no tokens are sent until claimed |
| **Budget recovery**     | Reclaim unused funds by setting expiration periods on claim checks         |
| **Budget reallocation** | Recovered funds can be redirected to other campaigns                       |
| **Gas efficiency**      | No gas spent on rewards that are never claimed                             |

### Approval mode

Administrators can enable **Pending Approval** mode to review rewards before they become claimable:

1. Reward is calculated and set to **Pending** status
2. Admin reviews the reward in the dashboard
3. Admin approves or rejects
4. If approved, the voucher is generated and the user can claim

{% hint style="info" %}
Approval mode is useful for high-value rewards, new programs, or when you want manual oversight before distributing funds.
{% endhint %}

## Points (Offchain Rewards)

Points are an offchain rewards system that doesn't require blockchain transactions. They're ideal for engagement programs, pre-token-launch campaigns, and building leaderboard-based competitions.

### How it works

1. **User performs a qualifying action**
2. **Points are calculated and credited automatically** — no claim transaction needed
3. **User's balance is updated instantly** — visible in leaderboards and the SDK

### Key characteristics

| Feature                    | Detail                                                                          |
| -------------------------- | ------------------------------------------------------------------------------- |
| **Automatic distribution** | Points are credited immediately when a qualifying action is detected            |
| **No gas costs**           | Users don't pay any transaction fees                                            |
| **Integer values only**    | Points are always whole numbers — decimals are not supported                    |
| **Rounding**               | Values below 1 round to 0 (no points awarded); values 1 or above are rounded up |

### Points airdrops

Points can also be distributed directly via CSV upload, bypassing the normal event pipeline. This is useful for:

* Retroactive rewards for past activity
* Migrating from other rewards systems
* Manual bonus distributions
* One-time promotional airdrops

{% hint style="info" %}
Both reward types can be queried through the [Fuul SDK](/developer-guide/getting-started-with-fuul-web-sdk.md). Token rewards can additionally be queried via [subgraphs](/protocol-reference/subgraphs.md) for advanced filtering and historical data.
{% endhint %}
