Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ledger derivation is out of date #327

Open
ghost opened this issue May 9, 2019 · 6 comments
Open

Ledger derivation is out of date #327

ghost opened this issue May 9, 2019 · 6 comments

Comments

@ghost
Copy link

ghost commented May 9, 2019

It seems that Ledger changed the derivation path almost a year ago. They are also using the account field, not the address_index (for privacy).
MyCryptoHQ/MyCrypto#2070

@iancoleman
Copy link
Owner

Thanks for this.

Looks like it doesn't need any additional work here since the BIP44 tab will now work by default for ledger. Possibly these lines should change the name to 'Ledger (legacy)':

bip39/src/js/index.js

Lines 2776 to 2782 in dfa6968

{
name: "Coinomi, Ledger",
onSelect: function() {
DOM.bip32path.val("m/44'/"+DOM.bip44coin.val()+"'/0'");
DOM.hardenedAddresses.prop('checked', false);
},
}

Anything else you can see that should be changed in this tool?

@ghost
Copy link
Author

ghost commented May 10, 2019

Thanks for the quick response.

It seems that Ledger needs its own tab or an option to iterate over the "account" field instead of "address_index".
MyCryptoHQ/MyCrypto#2070

in Ledger Live instead, the idea is to follow BIP44, which means the first address is derived on m/44'/60'/0'/0/0, the second on m/44'/60'/1'/0/0, and so on,.. so in other words using the account field of BIP44. (m/44'/60'/x'/0/0)

LedgerHQ/ledger-live-desktop#1185

Ledger Live uses m/44'/60'/x'/0/0 for addresses, but Trezor and MEW use m/44'/60'/0'/0/x, which also seems to be the consensus that has been reached on EIP 84. This will lead to the same derivation for the first address, but different derivations for subsequent addresses.

@gre could you please confirm?

@gre
Copy link

gre commented May 10, 2019

yes that's correct. Both patterns are supported by Ledger Live still, but Ledger Live only allows to create BIP44 accounts on the interface at the moment.

@user11992
Copy link

user11992 commented Jul 14, 2021

@gre Even though I have been reading a lot about Ledger Live supporting all prior derivation paths I am still having trouble getting LL to read my BTC, ETH and Dash transactions AND pull those balances over using a Nano S that was just updated from firmware 1.3.1 to 1.6 to 2.0 firmware yesterday. The only balance that is pulling is LTC. I have sent support requests and started Reddit posts in an attempt to resolve this issue. I'm afraid to send a test transaction as I don't want to create a new path and ruin the ability to retrieve what is already there. If there is a way to roll back the firmware update, maybe this could be a solution? Would the firmware/path issue be resolved if restoring using my seed with a newer device? I have tried restoring from seed on the existing device to no avail. The Nano S I have is from 2017 and was just synchronized yesterday for the first time in over 3 years. I need help.

@cryptopivot
Copy link

Not sure how you feel about this,. Using TRUST Wallet, Coimomi and Ledget Live with your issue seed, it should find all ofthem. Also, be sure to go into Ledger Live advance settings and check the box for old advanced derivation search. As there is a particular such setting worded similar to the above. Obviously creating a new seed for transfer may be of interest after such exposure.

@findtherabbit
Copy link

findtherabbit commented Sep 7, 2024

@iancoleman you still need to add a new path for Ledger Live specifically. Even though, Ledger Live misleadingly claims that they support bip44, the indexing for all addresses uses an account value, not the address_index value, hence why breaking an ability to use your tool. So, if you want folks to also see their Ledger Live addresses, please add a way to index addresses like this:

const ledgerLegacy = `${"m/44'/60'"}/${i}` // ledger legacy ( currently works in your tool as Coinomi, Ledger)
const ledgerLivePath = `${"m/44'/60'"}/${i}'/0/0` // doesn't exist this option in your tool
const bip44path = `${"m/44'/60'/0'/0"}/${i}` // your current bip44 which works as expected

please notice line 2.
Thank you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants