Hey @ielashi, thanks a lot for your incredible work. This is my question, will people who created their staking neurons a long time ago able to transfer on a way or another their staked ICP into the ledger sooner or later ?
Itâs great work. ButâŠ
That integration does not yet work; even in developer mode; at least not for me.
Also I donât believe that one would be able to transfer the neurons from NNSDAPP to neurons in Ledger; unless the transfer functionality for neurons is enabled.
Hey @Roman, that depends on how you staked these neurons.
The short answer:
If you staked your neurons using the NNS dapp, then no.
If you staked your neurons using a seed phrase that you generated yourself (e.g. using keysmith) then yes.
The slightly longer answer:
A neuronâs principal cannot be changed. You can, of course, disburse an unlocked neuron and create a new one, or spawn a new neuron from your rewards with a different principal, but fundamentally, a neuronâs principal cannot be changed during its lifetime.
If you staked neurons using a seed phrase that you generated (a 12-24 word mnemonic phrase), then you can initialize the ledger wallet with that phrase and youâll then be able to use the ledger wallet to control your neurons. The neurons didnât change their principal - we simply copied that principal into the ledger device in this case.
When staking with the NNS dapp, youâre relying on the Internet Identity, which works very differently. Thereâs no private key associated with your principal that you can load into a Ledger wallet, and therefore a Ledger wallet cannot control the neurons staked by these principals.
WoW, thanks you for such an exhaustive response @ielashi. That is so much kind.
Ouch ! So sad.
I staked all my ICP into the NNS using Internet Identity (FIDO (U2F)). Letâs hope @dominicwilliams will be ok to enable temporarily neurons transfer functionality, or for any trick in order to allow early investors to benefit Ledgerâs protection.
@dominicwilliams, what do you think ? For fair reasons, early investors need to be at least as protected as the newcomers.
I was wondering if the merge neuron function might help solve the issue of poor security linked to neurons set up on the Internet Identity App.
For example, letâs use the following hypothetical merging the two neurons below:
Neuron ID - 1 - this neuron was set up on the Internet Identity App directly without the use of ledger. Stake of 3 ICP
Neuron ID - 2 - this neuron was set up using ledger with the Internet Identity App. Stake of 2 ICP
Could I set the new merged neuron to neuron ID 2 thereby creating a combined stake of 5 ICP? This presumably would solve the existing security problem with Neuron ID 1 but it would also open the door to selling neurons to third parties.
@jwiegley is this how the merge neuron function may work?
I guess we will only able to merge neurons of the same kind : neurons intraLedger merged will generate a new one itself intraLedger, neurons extraLedger merged will generate a new one itself extraLedger.
Plus, I guess neurons created with Internet Identity will not be mergeable with those created using seedphrase, but only with one itself created with II.
See ?
But I let @jwiegley be more specific or correct my assumptions.
The merge neurons function will require that both neurons be managed by the same controller key, so you will not be able to use it to transfer stake from II to a Nano-created neuron, unfortunately.
Given the fact that, for reasons mentioned above, a restaking of already staked ICP into a neuron created using the Internet Identity is definitely impossible by coding, what can Dfinity Foundation do for early supporters and stakers in order to allow such a restake to them ?
I wanted to create a new thread titled âImproving the Merge Functionâ with the below text but couldnât figure out how to make a new thread. Anyone mind pointing me in the right direction?
The key question I would like to ask @jwiegley would be if it is possible to assign the maturity of one neuron to another neuron with the same controller key? Presumably if one can merge neurons together with the same controller key this should be possible too.
Hereâs the case study. Suppose someone wants to lock the majority of their tokens up for 8 years but assign the maturity of that 8year neuron to a neuron with only 6 months, or assign the maturity to a neuron with only 1 week. That would provide massive convenience benefits and avoid continually spawning new neurons, dissolving them, disbursing them, and then adding them, or spawning them and then merging them.
Does that sound reasonable? I believe this would be a major improvement to merge maturity to include this functionality alongside merge neuron.
Dear @Roman , it was very nice talking to you. Thank you for sharing the background of your story and explaining to me what you wanted to achieve. I have a good understanding of what you want to do.
Unfortunately, as @ielashi and @jwiegley explained earlier in this thread, the answer seems to be No. The neurons youâve already staked in NNS app cannot be transferred into a Ledger cold wallet.
Regarding the proposed solution you brought up in our Telegram chat, Iâm afraid DFINITY wonât be able to do that either. We are merely a technology provider and are not able to provide any service to verify/notarize your identity, let alone facilitate an over-the-counter transaction that would essentially change the history of the blockchain.
I do agree that we should have better documentation and online instructions so that users would receive sufficient warning during the staking process and be able to make more informed decision with good understanding of the consequence of their actions (such as, which ones are irreversible actions). We rely on early adopters like you to give us suggestions and make IC better.
I am also looking forward to the merge functionality for my neurons (multiple neurons, same controller, 8 year lock). According to this post (Automatic maturity merging (2) - #3 by hpeebles) by @hpeebles, we should have that functionality relatively soon ( in less than a month?)
That functionality should be distinguished from the auto-merging functionality;which I believe may take multiple months to develop natively on the NNS.
The OUT-OF-NNS auto-merging solution which is advocated here(GitHub - icdev2dev/sachvo: Manage iND neurons without Internet Identity) takes 0.025 icp per management proposal; so it is not cost-free. Obviously if one have n neurons, one incurs a cost of n*0.025 icp per auto-merging. This means that practically i need to limit my auto-merging to weekly (52 times a year). This cost would be drastically reduced if I could merge all my neurons into one. Then I could run auto-merging proposal on only one neuron.
The work for the Ledger app is already complete. We plan to submit a new version of the app for Ledgerâs review in January, and then whenever itâs approved itâll be available for everyone via Ledger Live, and the functionality will then be enabled on the NNS dapp.
The exact timing of when itâll be available is unfortunately not in our control. The Ledger review process has typically been very slow, but I am optimistic that smaller updates like this will have a shorter review cycle than the initial release.
The idea of transferring maturity is an interesting one. Iâm going to note it down in a ticket, but otherwise no, today there is no other way to do what youâve described other than spawn the maturity and then to topup the other neuronâs stake with it once it is liquid.
I was wondering (and this clarification is probably good to be made, to allow people to manage their neurons accurately as soon as possible) : since a neuronâs principal ID cannot be changed, people who had created neurons using the Internet Identity within the NNS dapp, canât integrate these neurons into the Ledger, we know this.
But here is the question : when Ledger Live will support ICP, do you think that neurons currently created through the Ledger, will be available on Ledger Live, or again, we will have to create new neurons only available on Ledger Live. To say it differently, will our neurons currently created with the current Ledger integration, be available within the Ledger Live, or will Ledger Live have a new principal, different of the principal that have my neuron created through the Ledger within the NNS ?
I know that this integration is far away, but I guess that the ICP currently hold on the Ledger hardwallet will be directly readable and manageable on the app Ledger Live, but I prefer asking.
I wouldnât want to take the risk of staking for 8 years more and more ICP on a neuron which would not be available within Ledger Live, once the integration completed. I would prefer waiting, if the Ledger Liveâs neuronsâ principal ID had to be eventually different than those we have already created.