Here I discuss three initial metrics for evaluating the health of the tokenomics in our network model: Normalized Treasury Percent Decrease, Normalized Emission per Unit Staked, and Normalized Volatility.
- Normalized Treasury Percent Decrease
This measures the fraction of the treasury’s total value that is emitted or distributed over a given period. According to the white paper, we have a nominal value of 0.025 per month. So I calculate the percentage decrease and normalise by 0.025. Monitoring the actual yield against this target provides an immediate indication of whether the system is behaving as expected. From my testing this metric always seems to be a clear indicator that something has gone wrong. This is also the most interpretable and easiest to compute. The same can be done with the staking APY of 12%.
- Normalized Emission per Unit Staked
The Normalized Emission per Unit Staked metric compares the actual emission per unit staked against the target emission rate, which is derived from the white paper’s model.
3. Normalized Inflation Rate
The Normalized Inflation Rate measures the actual inflation rate against the target inflation rate. Here I am referring to inflation as the fraction of change in the circulating supply.
We need the absolute value in the last expression if we take a log.
For all three of these metrics, if they are above 1 this means have higher X than our target/nominal value. In some instances I will take a log of these values.
To evaluate these metrics, I simulated the following scenarios:
- Base Scenario: Reflects the standard network parameters. (Defaults in the simulator)
- Double Emission: Doubles the emission rate to observe its impact on inflation and treasury health. This simulates if someone were to make an error and we accidentally double all emissions.
- More Validators and topics: I upped the frequency to 10 per month for each
- No Staking: Assumes minimal staking behavior, testing the network’s ability to function with low participation. (1% staking fraction for team, participants, and investors)
- Complete Staking: Assumes all tokens are staked, testing the network’s limits under maximum security. (99% staking fraction for team, participants, and investors)
- No fee revenue
- Volatile staking - I made it so the staking fractions for team, participants, and investors are randomly drawn between .2 and .8 each epoch.
The values for scenarios 1-6 are here:
scenarios = [
{"name": "Base Scenario"},
{"name": "Double Emission", "f_emission": 0.05},
{"name": "More Validators and Topics", "monthly_new_validators": 10, "monthly_new_topics": 10},
{"name": "No Staking", "participants_stake_fraction": 0.01, "team_stake_fraction": 0.01, "investors_seed_stake_fraction": 0.01, "investors_preseed_stake_fraction": 0.01},
{"name": "Complete Staking", "participants_stake_fraction": 0.99, "team_stake_fraction": 0.99, "investors_seed_stake_fraction": 0.99, "investors_preseed_stake_fraction": 0.99},
{"name": "No Fees", "f_fees": 0.0},
]
The results are below:
- Base Scenario:
- Double Emission:
- More Validators and topics:
- No staking
- Complete Staking:
- No fee revenue
- Volatile staking
Discussion:
I think really any of these metrics could work. The most interpretable and simple is the normalised rate of treasury decrease. It doesn’t point to exactly what is wrong but it is an indicator that something is going wrong. The normalised emission per unit staked I consider does not seem to give much information at all. The log of the normalised inflation rate appears useful, it seems that is positive after all token unlocks in all problematic cases, and is negative after 36 weeks in the base scenario. The volatility I introduced in the last example highlights the need to filter/EMA these metrics, but the normalised inflation rate appears the most robust to this volatility.