## TL;DR

The goal of this article is to explain the interplay between the deflationary and inflationary mechanisms of ICP and to project their joint development. The concepts and tools presented here serve as a toolbox for assessing ICP tokenomics over time and potential changes.

We have constructed a projection model that considers the development of cycles burned, voting rewards, and node provider rewards to analyze the evolution of the total supply of ICP and maturity. The model is based on historical data and provides insights into the future trends. In an upcoming article, we will conduct scenario analysis to explore the sensitivity of the results to key parameters used in the projection.

According to our model:

- The ICP equivalent of cycles burned is projected to surpass node provider rewards in a little over three years, indicating that the revenue generated by the Internet Computer will exceed operational costs.
- In five to six years, the ICP equivalent of cycles burned is predicted to surpass the combined sum of node provider rewards and voting rewards, resulting in deflationary conditions.

This article is the second installment in our tokenomics series. In the first piece, we focused on projecting cycle demand and the necessary network capacity. If you have not read it yet or need a refresher, you can find it here.

## Recap on NNS rewards

The Internet Computer (IC) has inflationary and deflationary mechanisms. Governance participants can convert voting rewards to newly minted ICP. Also, node providers receive rewards in the form of newly minted ICP tokens. On the other hand, ICP is converted to cycles (i.e., burned) in order to pay for computation and storage. The diagram below illustrates this process.

### Voting rewards

The NNS serves as the decentralized autonomous organization (DAO) that governs the Internet Computer. Decisions are made in the NNS via voting, where token holders who have staked ICP in “neurons” can vote. Each day a voting reward pool is allocated to the voting neurons in the NNS. Each neuron receives a proportional share of the reward pool, determined by its respective voting power and the number of proposals in which it participated. Here’s a detailed explanation of how this process works:

Determination of the total reward pool

- For a given time period, t, ranging from the genesis time (G) to G + 8 years (8y), the annualized reward as a percentage of the total supply is calculated using the formula: R(t) = 5% + 5% [(G + 8y – t)/8y]². For any time t after G + 8y, the reward percentage is a fixed 5%: R(t) = 5%. The voting rewards function on the dashboard visualizes the annualized voting reward allocation.
- The total pool of voting rewards for a particular day is determined by multiplying the ICP supply (total supply of ICP tokens on that day) with R(t) and then dividing by 365.25.
- For example, on April 10th, 2023, the total supply of ICP was 497.4M tokens. The voting reward function for that day was calculated as 7.89%, leading to a total pool of voting rewards amounting to 107K.

Voting power of neurons

- Only neurons with a dissolve delay of more than 6 months are eligible for voting, and the maximum dissolve delay is 8 years.
- The voting power of a neuron is calculated as the product of the neuron’s stake, the dissolve delay bonus, and the age bonus.

Allocation of reward pool to neurons

The reward pool is distributed proportionally based on the voting power of settled proposals for that day, multiplied by the reward weight of the respective proposal category.

- The set of proposals included in the reward period (usually a day) consists of proposals that are no longer open for voting and have not yet settled in terms of voting rewards.
- The total voting power of eligible neurons is aggregated.
- Each neuron is rewarded according to the proportion of its voting power contributed to these proposals, multiplied by the reward weight of the corresponding proposal category.

When a neuron receives voting rewards, they are recorded as maturity, which is an attribute of the neuron and not a tradable asset. If a user wishes to convert maturity into ICP, they must burn the maturity by spawning a new neuron, which is a non-deterministic process described in detail here.

### Node provider rewards

Node provider rewards are paid out in the form of newly minted ICP tokens and are calculated on a monthly basis for each individual node. The reward amount per node depends on two factors: the node’s location, as hosting prices may vary across different locations, and the type of node, determined by its hardware specifications and connectivity capabilities.

To account for the investment and operational costs incurred by node providers, which are typically denominated in fiat currency, the node provider rewards are specified in Special Drawing Rights SDR (currency code XDR), which represents a basket of fiat currencies consisting of USD, EUR, RMB, YEN and GBP. These rewards are then converted into ICP tokens using the average exchange rate over the previous 30 days. For example, in April 2023, the total amount of ICP paid out as node provider rewards was 363K.

## Projection model

In this section, we describe the joint simulation of cycles burned, voting rewards, and node provider rewards. By doing so, we can also simulate the development of the total ICP supply and maturity. For this analysis, the underlying period for simulation steps is set to one month.

### Inputs to the calculation

Supply parameters as per April, 10th ‘23

- Total supply of ICP at the specified date: ICP_total_supply[0] = 497.4M.
- Total maturity of existing neurons on the IC at the specified date: Total_maturity[0]=58.9M.
- ICP/XDR conversion rate : P[0]=3.8

Cycle and conversion rate parameters

- Cycles burned for April ‘23: C[0]=13290T
- Growth parameter: We assume that the cycle burn rate will increase by a constant factor of g_m month-on-month (g_m = 4.76^(1/12)), aligned with the observed historical growth. For a more detailed derivation please refer to the article on the projection of cycle demand.
- ICP/XDR conversion rate development: Cycles burned and node provider rewards are measured in XDR units. To convert these values into ICP units, we need to assume an ICP price in the current period. We assume that the ICP price reacts linearly to increases in cycle demand. The sensitivity of the ICP price to an increase in cycle demand is chosen as alpha = 0.20. More information can be found in the Appendix.

Node parameters

- Current capacity per node: node_capacity_initial = 180 [XDR/month]
- Projected capacity per node after transition: node_capacity_final = 3600 [XDR/month]
- Transition period to reach final node capacity: node_capacity_transition_time= 4 years
- Current number of nodes: number_nodes[0] = 1235
- Number of nodes in system subnets: number_system_nodes = 80
- Average node rewards: average_node_reward = 1400 [XDR/month]
- For more detailed background information please refer to the article on the burn-rate capacity of nodes.

Voting reward parameters

- Conversion factor of maturity to ICP: maturity_conversion = 0.28. More information can be found in the Appendix.

### Projection Algorithm

Projecting Cycles

- The algorithm applies the assumed cycle growth parameter to determine the number of cycles burned in the next period: C_[i+1] = g_m * C[i]
- The assumed price development as a reaction to increased cycle demand is calculated as P[i+1] = (1 + alpha * (g_m - 1)) * P[i]

Required number of nodes

- The node capacity node_capacity[i] is assumed to grow with a constant growth factor from node_capacity_initial to node_capacity_final over the time period node_capacity_transition_time. Afterwards, it is assumed to stay the same.
- The estimation of required nodes is based on dividing the projected monthly cycle demand by the average burn-rate capacity of a node. The result is then rounded up to the closest multiple of 13, which represents the assumed number of nodes in subnets. Additionally, we include the number of nodes in system subnets, for which no cycles are charged, in the calculation. The corresponding formula is: nodes_required[i] = RoundUp( C[i]/node_capacity[i] /13)*13 + number_system_nodes
- number_nodes[i] = Max( nodes_required[i], number_nodes[0])

Projecting node provider rewards

- Using the average node provider reward per month, the algorithm determines the total node provider rewards as N_rewards[i] = number_nodes[i] * average_node_reward.
- This analysis does not consider potential reductions in average node provider costs. It’s important to note that not all node provider rewards are fully minted, making the analysis slightly conservative.

Projecting Voting rewards

- Voting rewards of the current period are determined as VR_maturity[i] = ICP_total_supply[i] * voting reward function[i] / 12.
- Based on the voting rewards minting factor alpha, we determine ICP minted from voting rewards via VR_converted[i] = maturity_conversion* VR_maturity[i] where the maturity conversion factor is described in the Appendix. We ignore the impact of maturity modulation in the conversion.
- We also determine voting rewards that are not converted by VR_not_converted[i] = VR_maturity[i] - voting_rewards_converted[i]
- total_maturity[i+1] = total_maturity[i] + VR_not_converted[i]

Projecting the total supply of ICP

- The total supply of the next period can now be determined by

ICP_total_supply[i+1] = ICP_total_supply[i] + N_rewards[i] / P[i] - C[i]/P[i] + VR_converted[i]

## Projection results

The graph below illustrates the simulated development of voting rewards, node provider rewards, and cycles burned, all converted to ICP.

### Key Takeaways

- Cycles Burned vs. Node Provider Rewards: In a little over three years, the amount of cycles burned (indicated by the green line) is projected to surpass node provider rewards (represented by the dark blue bars). This milestone (represented by the vertical line M1) signifies that the gross revenue generated by the IC will exceed the cost of running its operations. It marks a significant achievement for the IC ecosystem.
- Cycles Burned vs. Node Provider Rewards and Voting Rewards: In five to six years, the amount of cycles burned is projected to surpass the combined sum of node provider rewards and voting rewards (green line surpassing the sum of the blue and purple bars). This milestone (represented by the vertical line M2) indicates that the IC ecosystem will become deflationary at that point in time.

### Additional Observations

- Decreasing Voting Rewards: The graph reveals that voting rewards consistently decrease over time. This decline is primarily driven by the decreasing voting reward function, which offsets the increase in the total supply of ICP during the analyzed period.
- Node Provider Rewards Conversion to ICP: Initially, node provider rewards, which are determined in units of XDR, decrease due to the assumed increasing price of ICP. However, as the network grows and more nodes need to be added, node provider rewards eventually start increasing.

The following graph illustrates the progression of the total supply of ICP and total maturity.

### Key Takeaways

- Total Supply of ICP: The graph indicates that the total supply of ICP reaches its maximum after a little over four years, and subsequently decreases. This milestone is represented by the vertical line M1’.
- Total Supply of ICP and Total Maturity: After five to six years, the combined sum of the total supply of ICP and total maturity reaches its peak and then declines. This milestone is represented by the vertical line M2, which aligns with the point in time when the amount of cycles burned is projected to surpass the combined sum of node provider rewards and voting rewards, as depicted in the previous graph.

## Appendix: Historical development of total supply and maturity conversion

The graph below depicts the historical development of the actual total supply of ICP (represented by the blue line) from Genesis to the end of January 2023. To provide context, we have included a theoretical maximum total supply (represented by the red line). The theoretical maximum assumes that all voting rewards are converted to ICP on a daily basis, disregarding the smaller impact of node provider rewards, ICP burning on the total supply and maturity modulation.

The significant disparity between the two lines in the graph indicates that a substantial portion of voting rewards, in the form of maturity, have not yet been converted to ICP.

In fact, according to the IC dashboard on 30.4.23, the cumulative maturity held in neurons amounts to 60.49M, whereas only 23.69M of ICP has been converted from maturity. This means that only 28% of the available maturity has been transformed into ICP.

This conversion ratio is a relevant factor for the projection analysis, as voting rewards are determined by the product of the total supply of ICP and the voting reward function R(t). Consequently, a low conversion ratio of maturity to ICP reduces the future ICP inflation.

Thus far, the conversion ratio appears to have remained relatively stable over time. Therefore, we will utilize the value of 28% as an input for our calculation. It should be noted that this value may change in the future, and therefore, it should be considered as a scenario parameter. Several factors may influence the conversion ratio:

- Since Q3 '22, neurons have been able to stake maturity, resulting in maturity being locked until the neuron is dissolved. If a significant number of neuron holders choose to stake their maturity, it will temporarily decrease the conversion ratio.
- Neuron holders have the option to convert substantial amounts of maturity to ICP at a later stage, allowing them to realize income at that point. This action would increase the conversion ratio.

## Appendix: Conversion of cycles and node provider rewards to ICP

To convert cycles burned and node provider rewards from XDR units to ICP units, we need to assume an ICP price for the current period. Our assumption is that the ICP price reacts linearly to changes in cycles burned. This means that for every increase in cycles burned, the price is assumed to increase by a certain percentage.

We use the formula: delta ICP price = alpha * delta cycles burned

Here, we have chosen alpha = 0.20. This means that if cycles burned increase by 100%, the price is assumed to increase by 20%. This assumption is based on the belief that the growth of the IC ecosystem, as indicated by cycle consumption, will have a positive impact on the ICP price, although not on a one-to-one basis.

However, it is important to note that this assumption is simplistic and does not account for other factors that influence the demand for ICP, such as staking or DeFi. Therefore, alpha should be considered as a scenario parameter that can be adjusted to analyze the sensitivity of the results to changes in alpha. This analysis will be conducted in a subsequent article.