algorand / go-algorand

Algorand's official implementation in Go.
https://developer.algorand.org/
Other
1.36k stars 473 forks source link

Add goal support for multiple Ledger Nano accounts #1930

Open pbennett opened 3 years ago

pbennett commented 3 years ago

Is your feature request related to a problem? Please describe.

The Ledger Nano supports multiple accounts for every coin I've used with it. For Algorand, Ledger Live supports this for Algorand as well. However, the goal CLI which supports the Ledger well, does NOT support multiple accounts. It only supports account 0.

Trying to add a new account yields:

> goal wallet new -w Ledger-Nano-X-0001-XXXXXXX
Error processing command: operation not supported by wallet

Describe the solution you'd like.

Just like you can create a new wallet with a seed and create the same accounts from that seed, the ledger works the same way. Any accounts added via Ledger Live should all be visible via Goal. This is required in particular for signing 'online/offline' transactions. I'll often use goal for sends as well via goal clerk send.

The key is, all the normal operations should work cleanly, list, new, and use of the accounts at a minimum.

pbennett commented 3 years ago

Now that the Algorand Wallet app supports Ledger multiple accounts (although they first have to be created via Ledger Live and contain ALGO unfortunately), this omission is becoming more of an issue.

Prosthet1cHead commented 3 years ago

I see this as very important, since I like the security of a hardware device to hold keys and perform the signing. I have a number of wallets generated with the Ledger device with which I would like to participate in the upcoming governance process. I'm don't think Ledger Live will support easy participation in governance soon (although have requested it from Ledger on their github too) and doesn't allow signing of arbitrary transactions either so as things stand I will have a very hard time participating in governance from my multiple Ledger backed wallets. This also currently prevents me from participating in consensus with all my wallets, just wallet 0 on the Ledger.

I offer the above as my personal use case, but I believe many others will also have a desire to access multiple Ledger backed wallets from within goal.

cccassidy commented 2 years ago

Adding another data point here. I created a 2nd account on the Nano S and in the process broke Ledger Live (I have a separate support ticket in with Ledger on that). I was able to get it hooked up to the CLI but it could only access the first/primary account on the Nano S

pbennett commented 1 year ago

Ledger live definitely supports multiple accounts, I've created multiple algorand accounts through it and did quite some time ago and they also work w/ myalgo, defly, etc.

johnalanwoods commented 1 year ago

We need to address this.

blue-lines-dev commented 1 week ago

Is this issue still open after 3.5 years? Hard to believe.

If yes, a major flaw for offline signing with a Ledger device.

pbennett commented 1 week ago

Is this issue still open after 3.5 years? Hard to believe.

If yes, a major flaw for offline signing with a Ledger device.

I think people just use algotools.org or https://txnduck.vercel.app/en for things like keyregs now. Then you just use Pera, Defly, or Lute with your ledger.