Sending and distributing rewards from consumer chains to the provider chain is handled by the Reward Distribution sub-protocol.
Consumer chains have the option of sharing (a portion of) their block rewards (inflation tokens and fees) with the provider chain validators and delegators.
In replicated security, block rewards are periodically sent from the consumer to the provider according to consumer chain parameters using an IBC transfer channel.
This channel is created during consumer chain initialization, unless it is provided via the
ConsumerAdditionProposal when adding a new consumer chain.
For more details, see the reward distribution parameters.
Providing an IBC transfer channel (see
DistributionTransmissionChannel) enables a consumer chain to re-use one of the existing channels to the provider for consumer chain rewards distribution. This will preserve the
ibc denom that may already be in use.
This is especially important for standalone chains transitioning to become consumer chains.
For more details, see the changeover procedure.
Reward distribution on the provider is handled by the distribution module.
Whitelisting Reward Denoms
The ICS distribution system works by allowing consumer chains to send rewards to a module address on the provider called the
To avoid spam, the provider must whitelist denoms before accepting them as ICS rewards.
Only whitelisted denoms are transferred from the
ConsumerRewardsPool to the
FeePoolAddress, to be distributed to delegators and validators.
The whitelisted denoms can be adjusted through governance by sending a
To query the list of whitelisted reward denoms on the Cosmos Hub, use the following command:
> gaiad q provider registered-consumer-reward-denoms
Use the following command to get a human readable denom from the
ibc/* denom trace format:
> gaiad query ibc-transfer denom-trace ibc/0025F8A87464A471E66B234C4F93AEC5B4DA3D42D7986451A059273426290DD5