RefKit Docs
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

  1. Transition reward CLAIMABLE -> PROCESSING (atomic guard).
  2. Send on-chain payout through distributor contract payout(address,uint256).
  3. Finalize reward to CLAIMED and write claimTxHash + claimBlockNumber.
  4. 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.

On this page