User Guide
Rewards and Claims
Claim state machine, wallet requirements, and payout behavior.
Claim Preconditions
A claim request succeeds only when:
- Reward belongs to requesting user.
- Reward status is exactly
CLAIMABLE. - Reward is not expired.
- User has a valid EVM wallet address.
Claim Transaction Flow
- Transition reward
CLAIMABLE -> PROCESSING(atomic guard). - Send on-chain payout through distributor contract
payout(address,uint256). - Finalize reward to
CLAIMEDand writeclaimTxHash+claimBlockNumber. - Move business balance from reserved to paid.
If on-chain payout fails, reward is rolled back to CLAIMABLE with lastError.
Idempotency Behavior
If a reward has already been claimed, claim endpoint returns idempotent success payload rather than failing.