HD Wallets and Derivation Paths: Explained
When accessing the blockchain with a hardware wallet or mnemonic phrase, you have the ability to interact with a seemingly infinite amount of addresses. But where do they come from? What do you do with them? How do you choose?
The path most traveled
Wallets that carry the functionality to derive many different addresses from a single access point are called HD wallets, which stands for Hierarchical Deterministic wallets. When these wallets are first generated, a root seed/key is derived. This is the foundation seed from which all branches and addresses will stem from in that particular wallet. In most cases, this key is derived from an entropy standard of 128 or 256 bits. The higher the entropy, the more randomized and secure this seed is.
From there, the wallet uses BIPs, which stands for ‘Bitcoin Improvement Protocol’, to determine how the seed will branch out into different addresses or cryptocurrencies. Even though this standard has the word Bitcoin in it, BIP 44 allows the protocols to be used on different cryptos. There are other BIPs as well, such as BIP 32, 39, and 43. These are often mentioned in the crypto-space, and each carries their own value to the entire system. For example, BIP 39 is used to generate mnemonic phrases across the board, taken from a long list of words shown here. These protocols are important, but are not necessary to understand for the general public.
A wide variety of wallets use these protocols, although the full extent of it often remains undercover. For example, MEWconnect uses an HD wallet, but we only show the first address from the vast list of addresses to the user, simplifying their process.
This can be confusing for users who go to restore their mnemonic phrase on a web interface like MEW, only to be shown millions of unused, empty addresses. In these scenarios, your expected address should populate as the first address you see in the list.
In all other cases, such as hardware wallets or raw mnemonic phrases, the user is able to choose which address they’d like to interact with each time they access their wallet. There’s no real benefit or detriment to this method, it just allows the user more choice. But all addresses are made equally, and the first one is usually easiest for keeping track down the road.
Same standard, different sequence
When you connect through your HD wallet, some wallets use slightly different paths for connection. Each path will generate a completely new list of addresses, relative to your root private key. That’s why it’s important to keep derivation paths in mind when troubleshooting issues regarding addresses accessed with hardware wallets.
For example, the general path for connecting to the base Ethereum set of addresses looks like this: m/44’/60’/0’/0. Trezor, MetaMask, Digital Bitbox, Jaxx, and Exodus, MEWconnect are just a few HD wallets that use this path.
This sequence is broken down into different sections and changes based on what you’re working with. The sequence goes:
m’ / purpose’ / coin_type’ / account’ / change / address_index
Any change to that path number or sequence will completely alter the addresses you expect to see. Ethereum Classic takes a different path, using this sequence: m/44’/61’/0’/0. Then hardware wallets like Ledger take an even more varied sequence specific to Ethereum Classic: m/44’/60’/160720’/0.
As you can see, not only can different cryptocurrencies have different sequences for deriving addresses, but hardware wallets and extensions can also take different paths than the norm, making room for a lot of variation.
Common paths
Here is a list of the paths we offer for connection with MyEtherWallet:
Ethereum — m’/44’/60’/0’/0
Ethereum Classic — m’/44’/61’/0’/0
Ethereum Testnet (Ropsten) — m’/44’/1’/0’/0
Ethereum (Ledger) — m’/44’/60’/0’
Ethereum Classic (Ledger) — m’/44’/60’/160720’/0
Ethereum Classic (Ledger, Vintage MEW) — m’/44’/60’/160720’/0’
Ethereum (Ledger Live) — m’/44’/60’
Ethereum Classic (Ledger Live) — m’/44’/61’
Ethereum (KeepKey) — m’/44’/60’
Ethereum Classic (KeepKey) — m’/44’/61’
RSK Mainnet — m’/44’/137’/0’/0
Expanse — m’/44’/40’/0’/0
Ubiq — m’/44’/108’/0’/0
Ellaism — m’/44’/163’/0’/0
EtherGem — m’/44’/1987’/0’/0
Callisto — m’/44’/820’/0’/0
Ethereum Social — m’/44’/1128’/0’/0
Musicoin — m’/44’/184’/0’/0
EOS Classic — m’/44’/2018’/0’/0
Akroma — m’/44’/200625’/0’/0
Ether Social Network — m’/44’/31102’/0’/0
PIRL — m’/44’/164’/0’/0
GoChain — m’/44’/6060’/0’/0
Ether-1 — m’/44’/1313114’/0’/0
Atheios — m’/44’/1620’/0’/0
TomoChain — m’/44’/889’/0’/0
Mix Blockchain — m’/44’/76’/0’/0
Iolite — m’/44’/1171337’/0’/0
ThunderCore — m’/44’/1001’/0’/0
If you don’t see your path, or if you’re unhappy with the paths available by default, we do offer a ‘Custom Path’ option for interacting with your HD wallet. This will show a custom list of addresses at the path you choose. However, please be cautious using custom paths, as you will have to remember this path for future access.
When interacting with some hardware wallets, like the Ledger hardware wallet, it’s important to note that the device will not allow you to access certain paths, such an Ethereum Classic or Mix Blockchain, without downloading the appropriate software for the device. An Ethereum Classic path would require the ‘Ethereum Classic’ app to be downloaded via Ledger Live. Then, when accessing your wallet through MEW, you would need to ascertain that the appropriate app is open on the device.
We hope you find this guide to derivations paths helpful! Hardware wallets are the most secure way to manage your crypto and it’s worth your safety to figure out some of the occasional intricacies of their usage.
Sincerely,
Team MEW
MyEtherWallet.com
Twitter
Instagram
Reddit
Facebook
Youtube
HackerOne
Github