If merging leaves behind empty neurons, read this!

Hello to all multiple neuron holders!

You may have noticed that we launched the ability to merge multiple neurons in the NNS Dapp. There is a medium article announcing this new functionality here: Internet Computer NNS Neurons Can Now Be Merged | by DFINITY | The Internet Computer Review | Medium

I want to highlight a particular statement made at the very end of that article:

In the days following merging from a source neuron, it’s possible there will still be proposals open showing voting activity by that neuron. This means you may receive voting rewards in the form of maturity for that neuron over the next several days.

Here’s what is happening in the NNS that causes this:

  1. Every time a proposal is created, a “ballot” is made for every neuron you hold that has voting power. This reflects votes you may cast on that proposal, and guards against “buying voting power” after a proposal becomes known.

  2. When the proposal is finally closed, you earn a reward for your voting participation (if you voted, of course) based on your ballot.

  3. Now, when merging two neurons: we merge the neurons, but not the ballots. We don’t merge ballots because this would require changing proposal data that until now is fixed and read-only until the proposal is executed. We deemed the security risk of making this aspect of proposals “changeable” to be higher than the education problem of dealing with dangling neurons.

Fortunately, the solution is easy: Wait until one week after you merge your neurons, then merge them again if they re-appear in your list of neurons on the NNS Dapp. Any bits of maturity remaining (even if it is too small to appear as a percentage) will be transferred, and thereafter the source neuron will truly be at zero stake and maturity and stay there — because it has no voting power, and cannot produce future ballots.

This issue is likely to affect everyone who merges neurons with voting power, and has been causing confusion on Twitter, Reddit, here, and elsewhere. So please link people to this post if you see the question being asked! We need to get the word out that everything is as expected, and nothing can be lost by merging your neurons.

Thank you,
John

11 Likes

It’s working flawlessly ! Next step merging community neuron !

should i merge maturity before Merge two neuron?

It shouldn’t matter whether you merge maturity before or after.

1 Like

Hello team,
First of all, thank you for your support. Secondly, I merged two neurons yesterday (Ledger) All good, but I lost the aging feature of the dominant one (staking for 8 years) I created this neuron 1 year ago and had 5% aging reward. Now, when I merged them, the aging reward is gone.

Please advise, thank you

One important thing to mention i guess is that before the merge, I spawn a new neuron from the dominant neuron, so i wonder if thats related. Thanks!

Just to note: whenever you merge two neurons, the total age of both of them is combined, using this code:

Think of the age in both neurons like a quantity of water. When they are merged, the merged neuron will have the exact same volume of water as the two source neurons combined. Nothing should ever be lost by merging.

2 Likes

Thanks, I will wait one week.

Hi there. I waited 7 days, and the age was not combined; it shows my neuron is 7 days old. Both of my neurons were on my ledger. Once I merged them, the neuron began to dissolve. Now, when I check the dashboard, I am not even getting staking rewards at all. Additional information: One of my neurons was locked for two years (dissolving) and the dominant one for 8 years (not dissolving) An empty neuron popped up and simply merged it as advice, but that did not make any difference in term of Aging. Please advise.

One more piece of information. The aging bonus is growing (0.12 in 7 days) I do not know if thats related, but I figure I rather share that. Please take a look at the picture below.

The most logical explanation for this is that the estimated daily rewards (maturity) for this neuron are being rounded down to 0.00. For example, a neuron with 1 ICP staked and 18% annualized rewards would receive an estimated daily rewards (maturity) of 0.00049281, which would be displayed as 0.00 by the IC Dashboard (and the NNS front-end dapp). For this example, it would take over 10 days of rewards before the maturity was high enough to be displayed as 0.01 on the NNS front-end dapp.

Let me know if this is not what’s happening.

I just noticed in your second screenshot that the voting power is 0, which implies that the neuron has no staked ICP or staked maturity. Such a neuron wouldn’t receive voting rewards.

If you show the full web page in your screenshot (you can crop or blur out the neuron ID, if you like), I can better tell what’s going on. You can also send me a private message with the screenshot, if you don’t want to post it publicly.

Hello Dylan. Thank you for getting back to me. I think I took a picture of the empty neuron by mistake. Here’s the real picture. Now it clearly shows the staking rewards. However, the bonus age is still not 5% as it was before merging my neurons. It is not supposed to be 18.0% Rather 20% or something like that.

You can see the date created (22/11/04) and it read 7 days of age. Also, I noticed that the age bonus changed from 0.12% to 0.13% in one day (again, not sure if related)

Let me know your thoughts about this.

Can you tell me what the amounts and ages of both neurons were before you merged them, and also what their dissolve state and dissolve delay were?

Hello Jwiegley, thank you for getting back to me.

  1. Neuron: 1400 ICP (Not dissolving, 8 years) This one was created in November/December 2021 so the age is 1 year +
  2. Neuron: 339 ICP (Dissolving, 2 years) The age of this neuron was like 2-3 months

Additional info: When I merged them, the new neuron began to dissolve

Do note that when you merge two neurons, you don’t get a third neuron. The staked ICP and maturity simply gets moved to one of the two neurons. Unfortunately the UI is not particularly clear on which neuron is being merged into which, it says “merging A with B” instead of “merging B into A”.

It may well be that, based on the “Date created” of your merged neuron, you merged the 8 year neuron into the 2 year dissolving neuron. So your neuron had been dissolving before the merge and was still dissolving after the merge. And for obvious reasons, the dissolve delay got set to the maximum of the two dissolve delays (otherwise you could merge an 8 year neuron with a 1 day neuron and get a 1 day dissolve delay).

The reason why your neuron age is 7 days is that your neuron was dissolving and you set it to not dissolve 7 days ago. IIRC a dissolving neuron does not have an age bonus.

2 Likes

Thank you for your answer. I was not aware merging B into A may be an issue. I had no idea I could lose the aging bonus by merging two neurons; otherwise, I would have never done it. Well, some other people can learn from my experience.

Thank you for the info. @free has diagnosed this accurately: by merging a non-dissolved neuron INTO a dissolving one, you immediately lost all accumulate age. The merge needed to happen in the opposite direction.

Note that this came up during the code design, whether the resulting dissolve state should be the “least dissolving” of the two – because it would require possibly changing the dissolve state of the target, and this was an unnecessary, additional wrinkle. It was finally decided to leave this up to the merge direction, but I agree the nuance is easily missed.