# 6️⃣ Custom Onchain Events

Fuul allows projects to set up any smart contract function or event as a conversion event through the Fuul Incentives Manager. You can filter transactions by specific parameters to target exactly the onchain actions you want to reward.

### What You Can Incentivize

| Trigger type                 | Description                                                                           | Reward basis                              |
| ---------------------------- | ------------------------------------------------------------------------------------- | ----------------------------------------- |
| **Deposit & Hold**           | Incentivize users to deposit liquidity and reward them periodically for holding       | Proportional to deposited value over time |
| **Swap**                     | Reward users for exchanging one token for another on your platform                    | Per swap or proportional to volume        |
| **Mint**                     | Encourage users to mint in-game assets, NFTs, or any other type of token              | Per mint event                            |
| **Stake**                    | Incentivize users to stake tokens and reward them periodically for their staked value | Proportional to staked value over time    |
| **Any contract interaction** | Define any smart contract function or event as a trigger                              | Configurable per event                    |

### How It Works

| Step                          | What happens                                                                                            |
| ----------------------------- | ------------------------------------------------------------------------------------------------------- |
| **1. Define the trigger**     | Select a smart contract address and specify the function or event you want to track                     |
| **2. Set filters (optional)** | Add parameter-level filters to narrow which transactions qualify (e.g., minimum amount, specific token) |
| **3. Monitor transactions**   | Fuul monitors the blockchain for matching transactions in real time                                     |
| **4. Record events**          | Qualifying transactions are recorded and attributed to the user's wallet address                        |
| **5. Distribute rewards**     | Rewards are distributed based on the configured reward basis — either per event or proportionally       |

### Hold-Based vs Event-Based Triggers

|                                 | Event-based (Swap, Mint)            | Hold-based (Deposit & Hold, Stake)   |
| ------------------------------- | ----------------------------------- | ------------------------------------ |
| **When rewards are calculated** | At the time of the transaction      | Periodically (e.g., daily snapshots) |
| **Reward basis**                | Per event or proportional to volume | Proportional to value held over time |
| **Use case**                    | One-time actions                    | Ongoing participation incentives     |

{% hint style="info" %}
Custom onchain triggers support any EVM-compatible chain. If you need help defining the right contract events and filters for your protocol, reach out at <ecosystem@fuul.xyz>.
{% 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/trigger-integrations/custom-onchain-events.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.
