Function X: January Hash Out

Request for Comment (RFC): staking reward of Function X Core (FXCore).

This edition of Hash Out is a Request for Comment, which means that many things are moving target in the article based on the feedback from the community. A key element, which is also a variable, is the staking ratio.

The term “Request-for-comment”, “RFC” and “temperature check” will be used interchangeably and represent the same meaning.

In this edition, we are covering the staking reward of Function X Core.

What is FX Coin?

FX Coin ($FX)is the underlying ‘currency’ within the Function X network. It will be the lubricator and connector to facilitate the operation of f(x) ecosystem. It is also the native coin of the Function X blockchain and its ecosystem. The nature of $FX has to be decentralized in terms of the distribution, allocation, control, circulation and generation.

How is the FX Coins generated within the Function X network?

New $FX are created every block and distributed among validators, delegators, liquidity pool, developer pool, community pool and other contributors participating in the consensus process and ecosystem enhancement. This provides an incentive to $FX holders to not just passively hold their tokens in wallets, but to put them to use in order to secure the network and enrich the ecosystem.

Instead a fixed rate, the number of new $FXs created per block varies and depend on the percentage of the total token supply that is staked in the network.

The staking ratio

The target staking rate of FXs put up as collateral to secure the network is yet to be decided.

If the staking ratio is lower than the targeted staking ratio, FX supply via block rewards increases up to a ceiling of x% annualized inflation of the total supply.

If the staking ratio is higher than the targeted staking ratio, block rewards decrease gradually down to a floor of x% annualized inflation.

Hence it is important to understand the target staking ratio

PLEASE NOTE THAT, for illustration purpose, bond(ed) and stake(d) are interchange in this article. The computation of staking reward includes several key variables, such as inflation rate, staking ratio, block time, commission rate, etc. We shall begin with the concept of ‘inflation rate’.

Inflation

Economically, Inflation refers to an overall increase in the Consumer Price Index (CPI), which is a weighted average of prices for different goods. In the scenario of token economics, inflation refers to the increment of a new token that is being created in the particular time frame. The newly created token shall be distributed among validator, delegator, community pool.etc as their staking or contribution reward. Hence, it is important for every stakeholder to know.

Dynamic inflation rate: Inflation rate changes in every block according to the staking ratio

FX’s inflation rate changes in every block (each block will recalculate the inflation rate of the next block based upon the previous block), based on a targeted bonding (staking) rate. This targeted bonding (staking) ratio is defined as total bonded (staked) token divide by current total token supply. The targeted bonding (staking) ratio is amendable through on-chain governance voting.

It is worth noting that, due to the inflation rate, it will keep increasing or decreasing (it depends on the staking ratio), hence the system will set a maximum and minimum parameter to ensure the inflation rate will not either drop to zero or sky rocket.

For simplicity and demonstration purpose (all ratio is not fixed), we assume the targeted bonded (staked) ratio at 51%,the minimum annualised inflation rate is 10%(floor); the maximum annualised inflation rate is 40%(ceiling)

That means:

  • When 51% of FX are staked, the inflation rate of the next block will remain the same;
  • When over 51% of FXs are staked, the inflation rate of the next block will decrease and if it remains over 51% all the time, gradually the inflation rate shall bottoming out at the minimum annualised inflation rate of 10%;
  • When below 51% of FXs are staked, the inflation rate of the next block will increase and if it remains under 51% all the time, gradually the inflation rate shall go up at the maximum annualised inflation rate of 40%.

How to come up with the inflation rate?

Formula:

Inflation rate per block = (1- Current staked ratio / targeted staked ratio) * inflation_rate_change_variable / annual number of block creation

Number of new token creation = ( Previous annualised block inflation + inflation rate per block) / annual total block creation * current token supply

Working of new token creation of the particular block

Assume the initial inflation rate is 20% (annualised)

On block 1st , the staking ratio is 33% (which is lower than target staking ratio, 51%) , the new token creation on that particular block is (20% + 0.0000059827%)/3944700* 378,604,543.19561 = 19.19561216, the creation of new token is increasing at block 2, 3,4… IF it remains 33%, gradually, the new token will maxing out to 40% annualised inflation rate.

On block 6th , when the staking ratio is 66% (which is higher than target staking ratio, 51%), the inflation rate per block is negative (-) , the inflation rate at column total inflation rate change per block starts to decrease. IF it remains 66%, gradually, the new token will bottom down to 10% annualised inflation rate.

Same analogy, if the staking ratio is lower than 33%, the increment of inflation rate per block will be greater; if the staking ratio is higher than 66%, the decrements of inflation rate per block will be greater. See below.

Assume the target staking ratio is 51%.

Remarks:

axis x: staked (bonded) ratio

axis y: inflation rate changes per block

Purpose of the mechanism is to attract holders and staking participants to secure the network while providing enough liquidity in the market to remain vital. We roughly estimated that, each block will have between 1–8 tokens reserved for validators/delegators depending on the block speed.

What is the staking reward rate?

Reward rate is the reward return % by participating in the staking and validating process. Inflation rate is not reward rate. Inflation rate is one of the key components in the formula to compute the reward rate.

Reward rate formula for validator =

[(Total current token supply * inflation rate * current staked ratio * block) * (1- community & ecosystem tax rate)] * [(total self delegated token / total staked token of the node * (1-commission rate) * participation period + commission earning]

Reward rate formula for delegator=

[(Total current token supply * inflation rate * current staked ratio * block) * (1- community & ecosystem tax rate)] * [(total delegated token / total staked token of the node * (1-commission rate) * participation period]

Notes:

*Commission rate refers to the token that will be taxed / taken by the validator in every valid block reward.

**Commission earning refers to the earning of validator by collecting the commission from delegator.

*** Reserve pool refers to the ecosystem reserve fund, similar to tax. All transactions that occurred on the network including new token creation and transaction fee shall be contributed (in part) to this designated pool which can only be unlocked through governance on chain voting.

Rule of thumb:

Reward_rate_validator : inflation_rate / (bonded_ratio + reserve_pool_rate)

Let’s say the annual average inflation rate is 20%; Current bonded ratio is 51%; Reserve pool rate is 20%

The rough calculation for validator reward is 20% / (51%+20%) = 28.17%

Staking Reward Calculators

To simplify, we’ve made calculators for you.

Validator’s Block reward calculator: xwallet-tool-rewards-calculator

Delegator’s Block Reward Calculator: xwallet-tool-rewards-calculator

It is worth noting that the inflation rate does not equal the reward rate, in most cases, the reward rate is greater than the inflation rate, which means the return of token staking participants will outperform the inflation of the network.

What are your thoughts? Please comment here or in Reddit and let us know about this Request for Comment HashOut article.

1 Like