algorand / go-algorand

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

Add ability to recover from Ledger BIP39 seed and get Algorand compatible wallet. #2124

Open pbennett opened 3 years ago

pbennett commented 3 years ago

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

See this reddit post for an example of the issue: https://www.reddit.com/r/ledgerwallet/comments/mcn7rs/psa_if_you_use_algo_with_your_ledger_be_aware/gs4t3fk/

The issue is that Algorand's choice to use a non-standard key mechanism and not BIP39 means that the 24-word BIP39 seed for a Ledger device and the Algorand accounts it generates are ONLY usable with and by a Ledger only. If your ledger is lost, and another Ledger is not available (or no longer exists) you can't recover your funds.

Describe the solution you'd like.

Algorand should either provide a utility to accept a 24-word BIP39 and provide the Algorand 25-word mnemonics for each indexed account (could specify which account index to export. Since Algorand created the Algorand Ledger app, knowledge of what derivation path is used is known and this should be doable. Another alternative is to allow goal wallet new -r to accept a bip39 option. It could then seed the kmd/goal wallet correctly so goal account new with that wallet generates each algorand account (0, 1, etc.) correctly and users could goal account export those individually as desired.

Algorand created this situation and is doing Ledger users a bit of a disservice to be honest. I like my Ledger, but if something were to happen to the device and I didn't have a backup device (or they were no longer made) then I'd be out of luck for Algorand, but not any other crypto.

MrJackdaw commented 2 years ago

Has there been any progress on this feature?

johnalanwoods commented 1 year ago

This would be useful. Something already exists for Ledger seed to Monero raw keys: https://github.com/LedgerHQ/app-monero/tree/develop/tools/python

pbennett commented 1 year ago

I stumbled on this one but can't attest to its validity or safety - but something definitely needs to be provided by Algorand IMO: https://github.com/abmera/bip39toalgo