Reward distribution to validators, delegators, and the community pool.

Note

Terra Classic keeps the Cosmos SDK distribution module but relies on burn-tax inflows instead of inflation or seigniorage. Rewards are passively accumulated and must be withdrawn by validators and delegators.

Classic overview

  • Burn-tax inflow. custom/auth/ante/fee_tax.goCopy custom/auth/ante/fee_tax.go forwards the burn-tax portion of every transaction to the fee collector. x/distributionCopy x/distribution allocates that balance at end block using the standard global split.
  • Community pool. CommunityTaxCopy CommunityTax is set to 0.5Copy 0.5, so the community pool grows with every transaction. Governance or users can still call MsgFundCommunityPoolCopy MsgFundCommunityPool to deposit additional funds.
  • Manual withdrawals. Validators use MsgWithdrawValidatorCommissionCopy MsgWithdrawValidatorCommission;delegators use MsgWithdrawDelegatorRewardCopy MsgWithdrawDelegatorReward. Nothing auto-claims.

Parameters (subspace distributionCopy distribution)

NameDescriptionClassic default
CommunityTaxCopy CommunityTaxPercentage of collected fees sent to community pool.0Copy 0
BaseProposerRewardCopy BaseProposerRewardFixed proposer reward share.0.01Copy 0.01
BonusProposerRewardCopy BonusProposerRewardAdditional proposer reward scaled by participation.0.04Copy 0.04
WithdrawAddrEnabledCopy WithdrawAddrEnabledAllow custom withdrawal addresses.trueCopy true

Reward flow

  1. Fees and burn-tax proceeds accumulate in the fee collector module account.
  2. During EndBlockCopy EndBlock, the distribution keeper pays proposer rewards (base + bonusCopy base + bonus).
  3. Any configured community tax is transferred to the community pool (no-op on Classic).
  4. Remaining coins are recorded in FeePoolCopy FeePool for future delegator withdrawals and oracle ballot rewards.

Messages used on Classic

  • MsgSetWithdrawAddressCopy MsgSetWithdrawAddress — update the account receiving staking rewards.
  • MsgWithdrawDelegatorRewardCopy MsgWithdrawDelegatorReward — claim rewards for a specific validator/delegator pair.
  • MsgWithdrawValidatorCommissionCopy MsgWithdrawValidatorCommission — withdraw accumulated validator commission.
  • MsgFundCommunityPoolCopy MsgFundCommunityPool — manually deposit funds into the community pool when governance approved spending budgets.

See the upstream Cosmos SDK documentation for full protobuf definitions and CLI usage examples.