Distribution
mint
and fees
are collected and distributed when the target block is created. There are three entities that the tokens may be distributed to: Sequencer, Stakers by proxy of Governors, and the RollApp's community pool.
Customizing Distribution on Genesis
Fees
collected and new tokens minted
are distributed when a new block is created, in this tutorial the total of these two amounts are called rewards
. These tokens are distributed through the x/dist
module. There are three entities that the tokens may be distributed to the Sequencer, the stakers by proxy of Governors, and the RollApp's community pool.
Example: 2% of rewards go to community pool, 10% go to Sequencer and the remainder go to stakers/governors.
"distribution": {
"params": {
"community_tax": "0.020000000000000000",
"base_proposer_reward": "0.100000000000000000",
"bonus_proposer_reward": "0.000000000000000000",
"withdraw_addr_enabled": true
},
}
community_tax
Percentage of rewards
that is distributed to the Community Pool (e.g., "community_tax": "0.02"
representing 2%).
base_proposer_reward
Percentage of rewards
that is distributed to the Sequencer (e.g., "base_proposer_reward": "0.10"
representing 10%).
bonus_proposer_reward
Set to "bonus_proposer_reward": "0.0"
, this field is not used in the Dymension RDK for rewards
distribution.
withdraw_addr_enabled
Delegators may change the withdraw address for their rewards
. Changing the withdraw address is possible only if the parameter WithdrawAddrEnabled
is set to true
. This is set to true
by default.
Community pool
To add funds to a community pool on genesis the account must be added to the genesis file and the amounts may subsequently be added to the distribution
module.
"fee_pool": {
"community_pool": [
{
"amount": "10000000000000000000",
"denom": "arollapp"
}
]
},
Sequencer
RollApp Sequencers are entities that process the transactions and publish data onchain. This entity carries the onchain costs of operating a RollApp. The amount of tokens distributed to the Sequencer is decided by the commmunity and may be changed (i.e., base_proposer_reward
) via an onchain governance proposal on the RollApp.
Stakers
RollApp Governors are entities that participate in the onchain governance of the RollApp and are delegated tokens by token holders. RollApp token holders delegate their voting power to Governors; however, if a token delegator votes, their vote overrides that of their chosen Governor.
Token delegators receive a portion of the fees
and mints
when they are distributed by the RollApp. Governors set a commission rate, which is applied as a tax on the tokens received.
Community pool
Community Pool acts as tresury for the RollApp in order to support initiatives. RollApp governance controls the distribution of funds from the community pool. RollApp token stakers may vote on a proposal on how to use these funds.
If a community-spend proposal passes successfully, the number of protocol owned tokens (e.g. RollApp tokens, stablecoins) encoded in the proposal will be transferred from the community pool to the address encoded in the proposal, and this will happen immediately after the voting period ends.