Skip to main content

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.