Overview

The Distribution precompile provides access to the Cosmos SDK x/distribution module. Smart contracts can claim rewards, query reward balances, and interact with the community pool. Precompile Address: 0x0000000000000000000000000000000000000801

Gas Costs

Method TypeGas Cost
Transactions2000 + (30 x bytes of input)
Queries1000 + (3 x bytes of input)

Transaction Methods

MethodDescription
setWithdrawAddressSet the address that receives staking rewards
withdrawDelegatorRewardsWithdraw rewards from a specific validator
withdrawValidatorCommissionWithdraw validator commission earnings
fundCommunityPoolSend tokens to the community pool
claimRewardsClaim rewards for a delegator with a max retrieval count
depositValidatorRewardsPoolDeposit rewards into a validator rewards pool

Query Methods

MethodDescription
validatorDistributionInfoGet a validator’s distribution state
validatorOutstandingRewardsGet unclaimed validator rewards
validatorCommissionGet accumulated validator commission
delegationTotalRewardsGet total rewards across all delegations
delegatorValidatorsList validators a delegator has staked with

Example

// Pseudocode: import IDistribution from the canonical interface.
IDistribution constant dist = IDistribution(0x0000000000000000000000000000000000000801);

// Withdraw rewards from a validator
dist.withdrawDelegatorRewards(msg.sender, "c8valoper1...");
For exact signatures, return values, and events, see Precompile ABI Reference.