v1

latestOpenAPI 3.0.32026-08-041747125.8 KB
Rewards

Get 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).

get/v1/rewards/{walletAddress}

Path parameters

walletAddressstring required

User's Ethereum wallet address

Query parameters

reloadChain'ethereum' | 'base' | 'polygon' | 'arbitrum' | 'avalanche' | 'optimism' | 'linea'

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

walletAddressstring required

Wallet address

timestampstring required

ISO timestamp

totalClaimedUsdstring required

Total claimed rewards in USD

totalAvailableUsdstring required

Total available rewards in USD

Example response

{
  "rewards": [
    {
      "rewardItems": [
        {
          "token": {
            "symbol": "USDC",
            "name": "USD Coin",
            "address": "0x1234567890123456789012345678901234567890",
            "decimals": 6
          }
        }
      ]
    }
  ]
}