> 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/trigger-integrations/custom-onchain-events.md).

# 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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.fuul.xyz/core-concepts/trigger-integrations/custom-onchain-events.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
