Both platforms distribute incentives onchain. Only one of them tells you who brought the user, which action earned the reward, and what the program returned.

Every incentive program runs the same five stages. Merkl starts at the third one, when eligibility is already an onchain position. The two before it are the ones growth teams end up building in house. The two are not the same purchase: Merkl distributes a liquidity campaign, Fuul runs the attribution underneath it and the affiliate program on top of it. Teams that run both are not doing anything strange.
| Fuul | Merkl | |
|---|---|---|
| Referral attribution | ✓Multi-level, with sub-affiliates | Single level |
| Affiliate commissions | ✓Paid on top of the budget, as a separate commission | Referral boosts redistribute the campaign budget |
| Affiliate operations | ✓Application queue, terms acceptance, invoices, separate accounting | A configuration flag on a campaign |
| Fraud protection | ✓ML behavioral clustering over 30+ onchain signals, self-referral detection, bot detection, payout caps | Compliance gates: OFAC lists, optional World ID, health factor and duration rules |
A deposit and a trade are onchain. A signup, a payment and a completed KYC are not, and those are often the actions actually worth paying for.
Grey is what both platforms can reward. Blue is what only Fuul can turn into a payout, in the same program and out of the same budget.

The trigger catalogue in Fuul. Every one of these pays out of the same budget as your onchain incentives. Merkl puts social actions out of scope by design.
| Fuul | Merkl | |
|---|---|---|
| Offchain and product events | ✓Any event through the API, including payments and in-app activity | Eligibility is computed from onchain positions |
| Social actions | ✓Supported | Out of scope |
| Points | ✓Fuul issues and holds the balance | Indexed only, you keep the canonical balance |
| Tax and KYC | ✓W-9, W-8BEN and W-8BEN-E collected in the portal, claims gated until approved | Pseudonymous by design, no KYC |
Merkl charges a percentage of what you distribute, on a published degressive ladder. Fuul charges a platform fee for the software, and it does not move with the size of the budget.
A worked example, on Merkl's published ladder. A program distributing $10M in a year pays 3% on the first $1M, 2.25% on the next $1.5M, 1.75% on the next $2.5M and 1.5% on the last $5M. That is $182,500, a blended 1.83%, taken out of the budget before a single user is paid. On Fuul the fee is invoiced separately, so the full $10M reaches users. The platform fee covers running an attribution and affiliate program, and it does not move with the size of the budget. Distributing token incentives at scale is quoted separately, on a schedule that decreases as volume grows.
Merkl's own documentation is explicit about both consequences.
Honest note. Below roughly $800,000 distributed per year, a take rate is cheaper than a platform fee and Merkl is the right call. Their ladder charges 3% on the first $1M, which is $30,000, and reaches $182,500 by the time you distribute $10M in a year. The arithmetic turns when incentives stop being a campaign and become something you run every week.
Everything above in one table, including the rows where Merkl is ahead.
| Fuul | Merkl | |
|---|---|---|
| Onchain reward distribution | ✓Token, stablecoin and points payouts, with claim infrastructure | Merkle root published onchain for users to claim |
| Chain coverage | Multi-chain, EVM and SVM | 60+ networks, the widest in the category |
| Position math | Snapshot based | Integrated across the campaign window |
| Reward forwarding through nested contracts | Address forwarding resolves a contract address to the end user through a configured mapping | Follows beneficial ownership |
| Offchain and product events | ✓Any event through the API, including payments and in-app activity | Eligibility is computed from onchain positions |
| Referral attribution | ✓Multi-level, with sub-affiliates | Single level |
| Affiliate commissions | ✓Paid on top of the budget, as a separate commission | Referral boosts redistribute the campaign budget |
| Affiliate operations | ✓Application queue, terms acceptance, invoices, separate accounting | A configuration flag on a campaign |
| Fraud protection | ✓ML behavioral clustering over 30+ onchain signals, self-referral detection, bot detection, payout caps | Compliance gates: OFAC lists, optional World ID, health factor and duration rules |
| Tax and KYC | ✓W-9, W-8BEN and W-8BEN-E collected in the portal, claims gated until approved | Pseudonymous by design, no KYC |
| Points | ✓Fuul issues and holds the balance | Indexed only, you keep the canonical balance |
| Social actions | ✓Supported | Out of scope |
| Pricing model | ✓Platform fee, independent of the amount distributed | Take rate on the amount distributed, deducted from the budget |
There are cases where we are not the answer. Three of them.
You are running a one-off liquidity campaign on a network we do not support.
Eligibility is entirely onchain and nobody is asking who brought the user.
It is a single distribution, small enough that a take rate costs less than a platform fee.
We would rather say this here than in the third call.
Nothing has to be paused. Past events are backfilled through the API, so the history a program already has does not reset. Both programs can run in parallel while you move: a campaign in flight on Merkl finishes on Merkl, while attribution starts collecting on Fuul from day one.
Yes, and some teams do. Merkl distributes a liquidity campaign while Fuul runs attribution, affiliates, and the programs that depend on product activity.
Yes. Token, stablecoin, and points payouts, with claim infrastructure and automated distribution.
Yes. Any event your product can emit becomes a trigger: a signup, a Stripe checkout, a KYC completion, an action inside your app. It is the same program and the same budget as your onchain incentives.
Past events can be backfilled through the API, and both programs can run in parallel while you move. Nothing has to be paused.
Bring a program you are running today. We will show you what the attribution looks like underneath it.
Book a demo