Token Economics

This includes advanced content.

​Plasm Network's token ecosystem is built into Polkadot. Therefore, this document includes the same formula and values as Polkadot. The token name of Plasm Network is PLM pronounced "PLUM".

PLM has four main roles:

  1. Staking for consensus, rewards for validators and nominators

  2. Transaction fee used to prevent harmful behaviors

  3. Block rewards for dApps operators; sustainable reward designed for applications

  4. Good / bad voting, dApps operators

PLM is intended to be used as a liquidity token. Tokens are issued through multiple Lockdrops to prevent zero-value collateral and increase the number of token holders. PLM tokens are expected to be operated at the ratio of 1:1=Staking:Liquidity1:1 = Staking:Liquidity.

1:1=Staking:Liquidity1:1 = Staking: Liquidity

Inflation Model

In the previous chapter, we defined the algorithm that determines the issue amount and distribution method when issuing new Plasm Network tokens. The Plasm Network is structured that the new token issuance fee is shared with dApps Rewards and a reward for securing the chain. The consensus algorithm of the Plasm Network is expected to be NPoS. Thereby, there are two types of Staking actions: Staking (NPoS) for Validator and Staking (dApps Rewards) for smart contracts. Both rewards from each staking are equally proportional to the amount of staking. Users who stake on validators / smart contracts are collectively called nominators. The ideal ratio of Staking for validators and Staking for smart contracts is:

​StakingvalidatorsStaking_{validators} represents the action of staking on validators.

​StakingcontractsStaking_{contracts} represents the action of staking on smart contracts.

Then, the below formula is the expected ratio between Staking for validators and Staking for smart contracts.

5:1=Stakingvalidators:Stakingcontracts5:1 = Staking_{validators} : Staking_{contracts}

Rewards paid to Operators are dApps Rewards. Operator rewards increase in proportion to the inflation rate due to Staking. dApps Rewards rewards 50% of the total reward when meeting the ideal qq from quote the dApps Rewards chapter. The rewards given to the Operator at that time is maximized. To show the specific reward distribution, we introduce the following variables:

  • ​RewardsoperatorsRewards_{operators} is the total amount of reward got by the Operator.

  • ​RewardsstakersvalidatorsRewards_{stakers_{validators}} is the total amount of rewards got by staking a validator.

  • ​ReardsstakerscontractsReards_{stakers_{contracts}} is the total amount of reward got by staking smart contracts.

  • ​tt is a coefficient that represents how many times the total amount of rewards earned by the operator is greater than the rewards earned by taking a smart contract.

​t=4t= 4 from quote the dApps Rewards chapter and 50% of the total reward for meeting the ideal qq will go to the dApps Rewards reward. Therefore, the ideal distribution ratio of remuneration is determined as follows.

Rewardsstakersvalidators:Rewardsstakerscontracts:Rewardsoperators=5:1:4\begin{aligned} Rewards_{stakers_{validators}}:Rewards_{stakers_{contracts}}:Rewards_{operators} & = 5:1:4 \end{aligned}

Also, the percentage of Staking and the percentage of reward are equal as follows:

Stakingvalidators:Stakingcontracts=Rewardsstakersvalidators:RewardsstakerscontractsStaking_{validators}:Staking_{contracts}=Rewards_{stakers_{validators}}:Rewards_{stakers_{contracts}}

PLM tokens use the same NPoS as Polkadot. This nominator and validator can operate the token at a certain annual interest rate for Staking. Also, token rewards will be paid to the PLM dApps operator's Nominator and Operator as well. Plasm Network's inflation model is defined as follows: First, follow the Polkadot inflation model and define the following variables:

  • ​xx is the total amount of staking divided by the total amount of tokens issued.

  • ​XidealX_{ideal} is the ideal value of xx. Staking:Liquidity=1:1Staking: Liquidity = 1: 1, so Xideal=0.5X_ideal = 0.5.

  • ​qq is the amount of staking to the validator divided by the total amount of staking. q=StakingvalidatorsStakingvalidators+Stakingcontractsq=\frac{Staking_{validators}}{Staking_{validators}+Staking_{contracts}}.

  • ​QidealQ_{ideal} is the ideal value of qq . From 5:1=Stakingvalidators:Stakingcontracts5:1 = Staking_{validators} : Staking_{contracts} , the ideal value of qq is Qideal=5/6Q_{ideal} = 5/6.

  • ​i(x,q)i(x,q) is the average annual interest getting by Staker. It is a monotonically decreasing function of xx, ∣Qideal−q∣| Q_{ideal} -q | (difference from the ideal ratio). To make both xx, qq close to the ideal value, when xx, ∣Qideal−q∣| Q_{ideal} -q | is low, raise the interest rate as an incentive to increase the amount of stake. When xx, ∣Qideal−q∣| Q_{ideal} -q | is high, lower interest rates as an incentive to reduce stake.

  • ​iideali_{ideal} is the average annual interest rate of Staker i(x,q)i (x, q) when both xx and qq are ideal values. in other words, iideal=i(Xideal,Qideal)i_{ideal} = i (X_{ideal }, Q_{ideal}).

  • ​IStakingI_{Staking} is the inflation rate by Staking. IStakingI_{Staking}, a bivariate function involving xx and qq, draws a three-dimensional convex function. Expressing Staking total amount x interest rate = inflation rate and expressing it as x∗i(x,q)=IStakingx * i (x, q) = I_{Staking} Also, this value is maximized when xx, qq is the ideal value from the reward design of i(x,q)i (x, q). The ideal state equation can be expressed as Xideal∗i(Xideal,Qideal)=MaxmiumIStakingX_{ideal} * i (X_{ideal}, Q_{ideal}) = Maxmium I_{Staking}​

  • ​I0I_0 is the lower limit of inflation rate. When x=1orx=0x = 1 or x = 0, converge to the lower limit. I0I_0 is equivalent to the operating cost of the validator. The reason is that if you do not secure at least the incentive to operate the validator, the chain will break, so I_0 = 0.025 is recommended here.

  • ​dd is an adjustable decay rate for each xx. Each time xx is dd more than XidealX_{ideal}, IStakingI_{Staking} is reduced by 50%. In other words, IStaking(Xideal+d,Qideal)≥IStaking/2I_{Staking} (X_{ideal} + d, Q_{ideal}) \ge I_{Staking} /2.We recommend d = 0.02.

  • ​gg is an adjustable decay rate on qq. Each time qq is gg away from QidealQ_{ideal}, IStakingI_{Staking} is reduced by 50%. In other words, IStaking(Xideal,Qideal pme)≥IStaking/2I_{Staking} (X_{ideal}, Q_{ideal} \ pm e) \ge I_{Staking} / 2. We recommend g = 0.15.

  • ​istakingi_{staking} is the average annual interest earned by the nominator through Staking. This can be determined by dividing inflation by the Staking ratio. In other words, istaking=IStakingxi_{staking} = \frac{I_{Staking}}{x}.

  • ​IoperatorsI_{operators} is the inflation rate due to the rewards that the Operator can get. This is t times the ratio (1-q) of Staking to Operator in I{Staking}.

​Stakingvalidators:Stakingcontracts=Rewardsstakersvalidators:RewardsstakerscontractsStaking_{validators}:Staking_{contracts} = Rewards_{stakers_{validators}}:Rewards_{stakers_{contracts}}

​Rewardsstakersvalidators:Rewardsstakerscontracts:Rewardsoperators=y:1:tRewards_{stakers_{validators}}:Rewards_{stakers_{contracts}}:Rewards_{operators} = y:1:t​

​Rewardsstakingvalidators(y+1)=(Rewardsstakingcontract+Rewardsstakingvalidators)yRewards_{staking_{validators}}(y+1) = (Rewards_{staking_{contract}}+Rewards_{staking_{validators}})y​

q=StakingvalidatorsStakingvalidators+Stakingcontractsq =\frac{Staking_{validators}}{Staking_{validators}+Staking_{contracts}}
=RewardsstakersvalidatorsRewardsstakersvalidators+Rewardsstakerscontracts=\frac{Rewards_{stakers_{validators}}}{Rewards_{stakers_{validators}}+Rewards_{stakers_{contracts}}}
=y/(y+1)=y/(y+1)
y=q/(1−q)y =q/(1-q)

​Rewardsstakersvalidators:Rewardsstakerscontracts:Rewardsoperators=q/(1−q):1:tRewards_{stakers_{validators}}:Rewards_{stakers_{contracts}}:Rewards_{operators} =q/(1-q):1:t​

Rewardsstakers:Rewardsoperators=q/(1−q)+1:tRewards_{stakers}:Rewards_{operators} =q/(1-q)+1:t

Here, the ratio of the amount of reward and the ratio of the inflation rate are equal.

IStaking:Ioperators=q/(1−q)+1:tIoperstors(q/(1−q)+1)=IStakingtIoperators=tIStakingq1−q+1=tIStakingq1−q+1−q1−qtIStaking11−q=t(1−q)IStaking\begin{aligned} I_{Staking}:I_{operators}& =q/(1-q)+1:t \\\\ I_{operstors}(q/(1-q)+1)& =I_{Staking}t \\\\ I_{operators}& =\frac{tI_{Staking}}{\frac{q}{1-q}+1} \\\\ & = \frac{tI_{Staking}}{\frac{q}{1-q}+\frac{1-q}{1-q}} \\\\ \frac{tI_{Staking}}{\frac{1}{1-q}}=t(1-q)I_{Staking} \end{aligned}
  • represents the average (based on the amount staken) interest rate of the operator's reward. From the auxiliary formula, ioperators=Ioperatorsx(1−q)i_{operators}=\frac{I_{operators}}{x(1-q)}.

  • ​II is the overall inflation rate. This is I=IStaking+IoperatorsI = I_{Staking} + I_{operators}, which is the sum of the reward for Staking and the inflation rate due to the reward for Operator.

​IStakingI_{Staking} is follows the below formula.

​IStaking={I0+x(iideal−I0Xideal)⋅2−∣q−Qideal∣/g(0<x≤Xideal)I0+(iideal⋅Xideal−I0)⋅2(Xideal−x)/d−∣q−Qideal∣/g(Xideal<x≤1)I_{Staking} = \begin{cases} I_0 + x(i_{ideal} - \frac{I_0}{X_{ideal}})\cdot2^{-|q-Q_{ideal}|/g} & (0 \lt x \le X_{ideal}) \\ I_0 + (i_{ideal} \cdot X_{ideal} - I_0) \cdot 2^{(X_{ideal}-x)/d-|q-Q_{ideal}|/g} & (X_{ideal} \lt x \le 1) \end{cases}​

The below figure is a graph simulating the inflation rate when each parameter is set as follows.

iideal=0.2Xideal=0.5Qideal=5/6I0=0.025d=0.02g=0.15t=4\begin{aligned} i_{ideal}=0.2 \\\\ X_{ideal}=0.5 \\\\ Q_{ideal}=5/6 \\\\ I_0=0.025 \\\\ d=0.02 \\\\ g=0.15 \\\\ t=4 \\\\ \end{aligned}

The above graph is fixed at q=Qidealq = Q_{ideal}. Here, the upper green line is the average annual interest rate (ioperatorsi_{operators}) for the operator's staking amount, the lower green line is the average annual interest rate of the staking (istakingi_{staking}), and the red line is the overall inflation rate ( II), the upper blue line indicates the inflation rate due to Staking reward (IStakingI_{Staking}), and the lower blue line indicates the inflation rate due to Operator reward ( IOperatorI_{Operator} ). The inflation rate when both xx and qq are ideal values ​​is 0.166 ... (1/6) at maximum. Next, the graph when q=0.2q = 0.2 is shown in the below figure. When q=0.2q = 0.2, the Staking percentage is 1:5=Stakingvalidators:Stakingcontracts1: 5 = Staking_{validators}: Staking_{contracts}, and the reward percentage is as follows:

​Rewardsstakersvalidators:Rewardsstakerscontracts:Rewardsoperators=1:5:20Rewards_{stakers_{validators}}:Rewards_{stakers_{contracts}}:Rewards_{operators}=1:5:20​

Then, although the ratio of the operator's reward is increasing, the upper green line representing the average annual interest rate for the operator's staking amount is low because qq is far from the ideal value. As a result, even if the ratio of Staking to smart contracts increases, the reward paid to Operators is not much different from the ideal state. Also, the lower green line, which represents the average annual interest rate of Staking rewards, has been reduced, giving the incentive for Staker to take validators to Stake in order to maintain balance. As an extreme example, The below figure shows a graph when q=1.0q = 1.0. At this time, no one has taken Staking for the smart contract, and the reward will be as follows.

​Rewardsstakersvalidators:Rewardsstakerscontracts:Rewardsoperators=1:0:0Rewards_{stakers_{validators}}:Rewards_{stakers_{contracts}}:Rewards_{operators}=1:0:0​

The green line that represents the average annual rate of reward for Staking is lower than ideal because the reward that the Operator gets is zero and qq is far from ideal. In this case, too, Staker creates an incentive to take Stakes on smart contracts to maintain balance. Note that the red line that represents the overall inflation rate and the blue line that represents the inflation rate due to the Staking reward overlap, making the latter invisible. Also, note that these graphs meet the following closings:

  • The average annual interest functions istaking,ioperatori_{staking}, i_{operator} are monotonic with respect to x.

  • The average annual interest functions istaking,ioperatori_{staking}, i_{operator} maximize when q is an ideal value.

  • ​IStaking,IOperator,II_{Staking}, I_{Operator}, I maximize when xandqx and q are both ideal values.

  • ​I0I_0 is the lower limit of the inflation rate.

  • Always satisfy Rewardsstaking:Rewardsoperator=5+1:4=6:4=3:2Rewards_{staking}: Rewards_{operator} = 5 + 1: 4 = 6: 4 = 3: 2 when qq is the ideal value. In other words, when qq is the ideal value, it satisfies Istaking:Ioperator=3:2I_{staking}: I_{operator} = 3: 2.

By adding the above-inflation model, we will adjust the incentives of Plasm users and encourage the actions expected of Plasm Network.

Any questions? Feel free to ask us on Discord Tech Channel.