# 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](https://docs.fuul.xyz/developer-guide/getting-started-with-fuul-web-sdk). Token rewards can additionally be queried via [subgraphs](https://docs.fuul.xyz/protocol-reference/subgraphs) for advanced filtering and historical data.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fuul.xyz/core-concepts/types-of-rewards.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
