v1
latestOpenAPI 3.0.32026-08-041747125.8 KBGet rewards
Retrieves aggregated rewards data for the specified wallet address across supported reward sources (currently Merkle-based rewards).
After a successful claim on a specific chain, pass reloadChain with the human-readable chain name (e.g. base, arbitrum) to force a Merkl cache refresh for that chain.
How to claim rewards — the claimTransaction is pre-built, just send it.
Each RewardItem with claimable rewards includes a non-null claimTransaction field. The backend has already constructed the full ABI-encoded calldata for the claimRewards(address,address[],uint256[],bytes32[][]) function — including the distributor address, token addresses, amounts, and merkle proofs.
To execute the claim, send a transaction from the user's wallet with exactly these values:
- to: claimTransaction.to — the rewards distributor contract address
- data: claimTransaction.calldata — fully encoded, ready to submit as-is
- chainId: claimTransaction.chainId — the chain to send it on
You do NOT need to encode anything yourself. Do not use params, abi, or method to construct the calldata — those are informational only. Use calldata directly as the transaction data field.
Example (viem): await walletClient.sendTransaction({ to: claimTransaction.to, data: claimTransaction.calldata, chainId: claimTransaction.chainId, })
Rate limiting: 1 request per 3 seconds per client IP. Excess requests receive HTTP 429 with Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers (see RateLimitExceeded response).
Path parameters
User's Ethereum wallet address
Query parameters
After claiming rewards on a specific chain, pass the chain name to force Merkl cache refresh for that chain. Omit for normal cached fetch.
Response
Rewards retrieved successfully
Example response
{
"rewards": [
{
"rewardItems": [
{
"token": {
"symbol": "USDC",
"name": "USD Coin",
"address": "0x1234567890123456789012345678901234567890",
"decimals": 6
}
}
]
}
]
}