How you can earn ICP through the Network Nervous System

A deep dive into staking on the Internet Computer.

This post is for informational purposes only, you should not construe any such information or other material as legal, tax, investment, financial, or other advice. Nothing contained in this post constitutes a solicitation, recommendation, endorsement, or offer by me to buy or sell any securities or other financial instruments in this or in any other jurisdiction in which such solicitation or offer would be unlawful under the securities laws of such jurisdiction.

First off, I want to extend major congrats to anyone involved with the release of the Internet Computer! This project is the result of years of R&D by some of the brightest minds in the space and I’m incredibly excited by the launch. With that said, let's see how anyone in possession of some ICP, as opposed to only people in areas with cheap electricity and access to custom ASICS, can participate in the Internet Computer’s governance system and earn some staking rewards.

Dfinity recently released its medium post explaining a number of things, namely: how the Network Nervous System (NNS) governance protocol works, details about the various proposals you can create on the NNS, how the ICP ledger works, what the various neuron attributes are, and how voting rewards are calculated from those attributes. Whilst most of the info you need is in that post, I figured that it would be useful to dive a bit deeper into the staking mechanisms of the NNS and provide some examples given that I have seen a lot of questions come up.  Also be sure to take a look at this Neuron Calculator I built where you can see the effects of the parameters discussed in this post.

Let’s start with a quick recap of what the NNS actually is; the NNS is the governance mechanism of the Internet Computer. It can change every economic parameter of the network, add new node providers, change the code that makes up the internet computer, or stop malicious canisters if necessary. It's basically almighty with regards to the Internet Computer. So who controls the NNS? The NNS is controlled by neurons that each represent a number of staked tokens. Each neuron can vote on proposals and receive rewards for those votes based on its voting power. 

How much return does the NNS provide to neurons?

The total reward that is divided among neurons every day is a fixed number and does not depend on the number of ICP that is staked. This means that the higher the number of ICP that is staked in neurons, the lower the reward you will receive due to the same reward having to be divided among more neurons. Thus, your reward is not only dependent on how much you stake, but also on how many other people participate in the NNS. With the Neuron Calculator, you can change this parameter under the “% locked inside voting neurons” slider in the advanced settings. Increase it, and your reward goes down. 

We can imagine this process as if it were a fictitious pie that must be divided. The total reward pie that is distributed among neurons every day is a certain percentage of the total supply. This percentage is dependent on the number of days that have passed since the date of Genesis, which was 10 May, 2021. Throughout the first 8 years, the rewards will be higher (starting at 10%) and over the course of the 8 years will slowly decrease to 5% where it stabilizes (see figure below).

The percentages are annualized whereas the rewards are divided daily. This means that on the first day, the daily reward pie is 10% of total supply * 1/365 and on the second day 9.99% of total supply * 1/365 etc. Note that we cannot know the size of the future total supply. On the one hand, the total supply is inflationary through rewards that are minted for neurons and node providers. On the other hand, the total supply is deflationary because ICP is turned into cycles and burned to make use of the network.

How is the daily reward pie divided among neurons?

With the size of the daily reward pie established, it’s time to divide this reward pie among the participating neurons. This division is based on the amount of voting power exerted by each neuron on that particular day. What do I mean by this? Every neuron has a certain amount of voting power based on its configuration (which I will get into in the next section). Each time a neuron votes on a proposal, it exerts that voting power. This then adds to its total voting power exerted on that day. At the end of the day, the reward is divided based on the relative voting power exerted in comparison to the other neurons. To give an example, let's say there is a daily reward pie of 100 ICP and there are two neurons in the network: neuron A and neuron B. Neuron A votes on two proposals with a voting power of 250, making the total exerted voting power 500. Neuron B votes on three proposals with a voting power of 200, making the total exerted voting power 600. Knowing this, we can now calculate what percentage of the reward pie each neuron would receive. Neuron A would get 500/1100, which comes down to 45% of the 100 ICP, and neuron B would acquire about 55%. Note that you are leaving money on the table if you don’t vote! Always vote or configure your neuron to follow someone who does or else you won’t get your reward. In the Neuron Calculator, you can see this effect by changing the “% of proposals voted on” slider in the advanced settings. 

How is my neuron's voting power calculated?

The voting power of your neuron depends on a number of different factors that are all within your own control. I will discuss these factors below.

The number of ICP locked in the neuron - This has a proportional relationship to your voting power. Therefore, if you put in 10 times as much ICP as another neuron, you will, with all other factors being equal, have 10 times more voting power and receive 10 times the reward per vote. Note that this proportional relationship means that the reward is not impacted by the number of neurons over which your ICP is divided. You could create 10 neurons with 1 ICP or 1 neuron with 10 ICP.

The dissolve delay - The dissolve delay is the amount of time you need to wait before you can access your locked ICP again. A neuron can be either in a stable state, or a dissolving state where the dissolve delay gets smaller throughout the passage of time. You can always increase the dissolve delay or keep it stable but you can only decrease it by awaiting the dissolving period. The dissolve delay has a maximum of 8 years and if the dissolve delay is shorter than 6 months, you can’t vote anymore and thus will no longer receive rewards for that neuron. The higher the dissolve delay, the higher the reward. If you use the highest dissolve delay, your voting power is multiplied by two in comparison to the lowest dissolve delay (no multiplier). An example: 

You create a neuron with a dissolve delay of 4 years, which increases your voting power by a factor of 1.5. A year after staking you use the dissolve command on your neuron. This slowly decreases its dissolve delay over the course of 4 years from 4 to 0. Each day, this makes your dissolve delay voting power bonus a tiny bit smaller up until the last 6 months when your dissolve delay is too small and you can’t vote anymore. When the dissolve delay hits 0, you can access your staked tokens again.   

Note that in the staking calculator, you have a stake period setting. This isn’t a setting in the actual NNS. It’s just used to indicate when you would use the dissolve command. If you would use a stake period of 5 years and a dissolve delay of 3 years, the calculator assumes that you would use the dissolve command after 2 years.

Age - This is the number of days that your neuron has been in a non-dissolving state. If you start dissolving your neuron through the dissolve command, your neuron’s age is immediately set to zero. The neuron’s age can add a voting power bonus up to 25% and maxes out after 4 years.

How to claim your voting rewards

You receive your rewards in the form of maturity, which is basically your received interest expressed as a percentage of your stake. So if you have a neuron with 100 ICP and your daily slice of the reward pie is 1 ICP, your neuron's maturity would increase with 0.01. The label ‘maturity’ is perhaps a bit confusing due to the previously mentioned concept of age, but the two have nothing to do with each other. It’s just another name for accrued interest. You can spawn your reward into a new neuron with a dissolve delay of one day once the accrued interest is above a certain number of ICP. Claiming the reward does not affect your voting power. I couldn’t find the minimum accrued interest you need in order to spawn a new neuron and I hope that the foundation can quickly provide some clarity on this matter. When they do, I will update this post. Note that even though I said earlier that it doesn’t matter if you spread your stake over 1 or 10 neurons for your total reward, it does matter for when you hit your minimum and are able to claim your reward. 

Final thoughts

As you may have noticed, everything is geared towards pushing you to stake your ICP for a longer period of time. This is to encourage voting behavior that is good for the long term value of the network. To max out your voting power bonuses, you would need to stake your tokens for 12 years. Firstly, because you would need to set your dissolve delay to 8 years. Secondly, because you would then have to not trigger the dissolvement of your neuron for at least 4 years to get the maximum age bonus. Finally, it would be a bit of a waste to only stake your tokens for a short period (e.g. 7 months) because for 6 out of those 7 months, you can’t earn any rewards. The longer your stake, the better the ratio between earning and non-earning months becomes. 

I believe that this is a fantastic way to push the governance system towards long term thinkers. On the Internet Computer, the neurons with the highest voting power have to decide on what is best for the network in 8 years. This is in stark contrast to something like the stock market, which is often criticized for being too focused on quarterly goals. As a closing remark, I want to underscore that the NNS controls every aspect of the network, including its own rewards. So anything you have read here, might change over time. If some aspects about staking on the NNS are still unclear to you, be sure to leave a comment or send me your question at @NNSystem on Twitter. If you feel ready to start staking and to participate in the governance of the Internet Computer, check out this article by the Foundation on how to get started.