GET /rewards
Request
Query parameters
Without address — all rewards
Returns every reward for the point system regardless of wallet.
Response 200
Reward fields
Supported chains
Reward campaigns are deployed on Somnia and Base only. ThechainId returned above is always one of:
Ethereum L1 is not supported. (The reputation score is computed from a different, larger set of chains. Those are not chains where rewards can be deployed.)
With address — per-wallet breakdown
Returns the same rewards split into three buckets based on the wallet’s eligibility and claim history.
Response 200
Buckets
Extra fields in per-wallet mode
Claiming on-chain
Token rewards are distributed as a merkle airdrop: each eligible wallet claims its own allocation on-chain by submitting a merkle proof to the campaign contract. Two public helper endpoints support the claim flow. Both are public (no API key is required, since a proof is useless without the wallet’s private key) and are rate-limited to 60 requests per minute per IP.GET /rewards/proof
Returns the merkle proof a wallet needs to claim its allocation for a specific airdrop.Query parameters
Only
active airdrops are matched.
Response 200
Errors
GET /rewards/claim-status
Returns every claimable reward for a wallet in a point system (active token airdrops and gift-card rewards) so a claim UI can list them in one call.Query parameters
Response 200
kind: "token") carry the on-chain details needed to claim (onchainId, chainId, contractAddress, amountWei, and hasProof); fetch the matching proof from /rewards/proof. Gift-card entries (kind: "giftcard") expose only the tier label and whether the code has been revealed, never the code itself.