The RewardDistributor contract is built to support ERC-20 distributions in the future, but this document covers ETH stipend distribution. The same recipients and claim delegates are used for both ETH and ERC-20 distributions.

Weekly ETH stipend service flow (off-chain → on-chain)

image.png

Stipend Recipients

Operators are the recipients of their key’s stipend rewards by default. If a global override is set, all stipends earned will be attributed to their global override address. In certain cases, the operator may want to override by individual keys. Per-key overrides take precedence over global overrides.

Override Precedence

  1. Per-key override: operatorKeyOverrides[operator][keccak256(pubkey)] if set.

  2. Global override (operator default): operatorGlobalOverride[operator] if set.

  3. Fallback: the operator address itself.

    ⇒ Per-key override wins over global; if neither exists, pay the operator.

Setting overrides

If the key’s operator changes and the new operator hasn’t set a key override, the new operator will be the fallback recipient until updated.

Claiming

Operators or their delegates claim, not recipients. An operator calls claimRewards(address payable[] recipients, uint256 tokenID) to pay out each listed recipient from its accrued balance. A delegate can claim on behalf of an operator via claimOnbehalfOfOperator(operator, recipients[], uint256 tokenID) if authorized. A token ID of 0 is used to signal an ETH claim.