-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Allow selection of BIP 44 accounts (BIP 44 level 3 index) #307
Comments
Um, actually it seems that MyEtherWallet uses |
We use the specifications and paths used by metamask and jaxx and ether.cards and ledger to decrypt ethereum keys. We didn't make up new paths or re-invent the wheel. We just did what as necessary to unlock the same addresses that users were already using on these other products and services. I'm curious to know which service you generated a wallet with that didn't use this/these paths? |
I see, so I guess the missing BIP 44 change level is a Ledger issue; I'll ask them. I used my own software to create the mnemonic and the keys, based on BitGo's HD wallet implementation. The original issue stands though: I'd still like to be able to select BIP 44 accounts and not be constrained to the 0 account only. (E.g. Ledger's Bitcoin Chrome wallet supports BIP 44 accounts.) |
So we may add support for this in the future if it's requested more often, but we feel like it's a pretty rare use-case. However, you can manually change the path (confirmed using chrome) in the following way.
24 word key 12 word key
The most annoying thing is that you will have to do this before unlocking the wallet each time as the variable gets reset each time you refresh or switch pages on MEW. I totally understand that this isn't the most viable solution for people accessing wallets on a consistent basis but we simply have so much on our plate right now that we have to prioritize. I think the ideal solution for this would be a small link above the mnemonic text area that says "Set Path Manually". When clicked it would display an input with ["Paste/Type Your Mnemonic"] User could change it, then enter mnemonic, and unlock the wallet and it would use that path. Would need front end validation to verify it's a valid path. Then it would simply be a change to use the ng-model of that field instead of the other paths here. Obviously if the user never clicked the button, the field would remain with the default, and that would be used. Other option would be a localstorage value that you could set and change and https://github.com/kvhnuke/etherwallet/blob/mercury/app/scripts/controllers/decryptWalletCtrl.js would check for a value in local storage before using the default paths. Anyone who wants this feature is free to open a PR or we'll get to it when we're bored one day 😛 |
Thanks for the in-depth reply. I'll test it with Ledger Nano (the above answer is for the mnemonic). If it works, it will be fine for my use case.
Please note that this should also work for other radio-button options (eg. Ledger Nan S), not only for the mnemonic variant. But yeah, this sounds like a flexible and not-too-hard-to-implement solution. |
I've filed an issue with Ledger regarding their use of m/44'/60'/0' as the parent to derive addresses from: |
The ledger radio uses |
Relevant pull request: #326 |
This is live as of v3.4.7 |
MyEtherWallet seems to only ever use the
m/44'/60'/0'/0/0
BIP 44 path. As a user, I'd like to be able to select the account number, i.e. the 3rd level index in the chain that is now fixed to0'
.(The fourth level (change) probably doesn't need to be selectable by the user as it is a technical detail, and moreover only makes sense in the context of Bitcoin and other UTXO-based coins, and not Ethereum. The fifth level is already selectable (sequentially) by the user.)
The text was updated successfully, but these errors were encountered: