⛓️EVM

This guide shows how to claim onchain token rewards from the Fuul protocol on EVM networks. The flow is: get claim checks from the API, read the fee from the contract, and submit a claim transaction.

circle-info

Before following this guide, make sure you've fetched your claim checks using @fuul/sdk.

1. Understand the ClaimCheck struct

The claim function on the smart contract accepts an array of ClaimCheck structs:

struct ClaimCheck {
    address projectAddress;
    address to;
    address currency;
    IFuulProject.TokenType currencyType;
    uint256 amount;
    ClaimReason reason;
    uint256 tokenId;
    uint256 deadline;
    bytes32 proof;
    bytes[] signatures;
}
Enum
Values

TokenType

0 = NATIVE, 1 = ERC20, 2 = ERC721, 3 = ERC1155

ClaimReason

0 = AFFILIATE_PAYOUT, 1 = END_USER_PAYOUT

The claimChecks array can contain multiple elements belonging to different projects and currencies.

2. Read the claim fee

The protocol charges a small native token fee per claim. Read it dynamically from the FuulFactory contract β€” never hardcode it:

3. Submit the claim transaction

All claims go through the FuulManager contract. Here's a complete example using viem/wagmi:

Contract addresses

All supported networks use the same addresses:

Contract
Address

FuulManager

0x8a0836dA623ea1083c85acB958DeEa3716b39dc6

FuulFactory

0xa0080A60EE9f1985151161Fa6b09652Dc46afdEF

Network
Chain ID

Ethereum

1

Arbitrum

42161

Base

8453

HyperEVM

999

Optimism

10

circle-exclamation

Last updated