Ledger integration for neurons created using Internet Identity

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.

2 Likes

@mparikh What issues are you running into?

WoW, thanks you for such an exhaustive response @ielashi. That is so much kind.

Ouch ! So sad. :sob:

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.

Thanks again Islam and have a great weekend !

2 Likes

yesterday I had an issue with the Internet Computer being in “Experimental” with Ledger Live 2.35.2 Nano S 2.1.0.

The issue seems to have gone away today. Thanks for your great work!

1 Like

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:

  1. Neuron ID - 1 - this neuron was set up on the Internet Identity App directly without the use of ledger. Stake of 3 ICP

  2. 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?

2 Likes

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.

1 Like

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.

1 Like

Dear @dominicwilliams, dear @zire,

I sincerely hope you both had a nice weekend.

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 ?

Regards
Roman

1 Like

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.

2 Likes

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.

4 Likes

Dear Herbert,

Thank you so much for having given your time to me. Grateful for always.

Regards,
Roman

2 Likes

Hey @ielashi, how are you ? Good I hope !

I was wondering if you have an idea about when the « merge maturity » button will be functioning into the Ledger’s neurons ?

Thanks !

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.

1 Like

Hi Roman,

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.

1 Like

Hi @ielashi,

Sorry for my wrong formulation :sweat_smile:, as you correctly understood it, I was meaning the “merge maturity” function availability through the NNS Dapp.

Understood ! Great ! I look forward so much !
Have a great week-end !

Roman

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.

2 Likes

Dear @jwiegley, @ielashi,

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.

Regards

Hey @Roman,

As you say, full integration with Ledger Live is quite a while away, but fundamentally there is no technical reason preventing the ICP and neurons that are owned by your Ledger wallet’s principal to be accessed and modified via Ledger Live. Not only that, but even today you can build scripts and dapps that allow users to manage their Ledger ICP and their neurons, just like we do for the NNS dapp.

1 Like

Terrific news !

Thank you so much Islam !

To bounce on @dfisher’s question and your answer to him @jwiegley, what about this ? Would it be feasible ?