Key Derivation Tool Tutorial: BIP-44 Path Explorer
Hierarchical Deterministic (HD) wallets are the backbone of modern cryptocurrency key management. From a single seed, an HD wallet derives an entire tree of keys — billions of unique addresses across multiple blockchains, all recoverable from your original seed phrase. SafeSeed's Key Derivation Tool lets you visualize and explore this tree, understand how derivation paths work, and diagnose issues when wallets don't behave as expected.
Explore BIP-44 derivation paths at safeseed.app/tools/key-derivation/ — fully client-side, works offline.
What Is Key Derivation?
Key derivation is the process of generating new cryptographic keys from an existing key. In cryptocurrency, this starts with your seed phrase and follows a deterministic algorithm defined by BIP-32 (Hierarchical Deterministic Wallets) and organized by BIP-44 (Multi-Account Hierarchy).
The critical property is determinism: the same seed always produces the same tree of keys. This means:
- You can recover your entire wallet from just the seed phrase
- Multiple devices with the same seed will show the same addresses
- No random elements are involved after the initial seed generation
The Key Tree
Think of key derivation as a tree:
Master Key (root)
├── Purpose 44' (Legacy)
│ ├── Bitcoin (0')
│ │ ├── Account 0'
│ │ │ ├── External (0)
│ │ │ │ ├── Address 0
│ │ │ │ ├── Address 1
│ │ │ │ └── Address 2 ...
│ │ │ └── Internal/Change (1)
│ │ │ ├── Address 0
│ │ │ └── Address 1 ...
│ │ └── Account 1'
│ │ └── ...
│ ├── Ethereum (60')
│ │ └── Account 0'
│ │ └── ...
│ └── Litecoin (2')
│ └── ...
├── Purpose 49' (SegWit)
│ └── ...
├── Purpose 84' (Native SegWit)
│ └── ...
└── Purpose 86' (Taproot)
└── ...
Each node in this tree has both a private key and a public key. The Address Generator derives the leaf nodes (individual addresses), while the Key Derivation Tool lets you inspect any node in the entire tree.
Understanding Derivation Paths
A derivation path is a sequence of indices that describes how to navigate from the master key to a specific child key. The standard notation looks like:
m / 84' / 0' / 0' / 0 / 0
Let's break this down completely.
Path Components
| Component | Meaning | Example Values |
|---|---|---|
m | Master (root) key | Always m |
purpose' | Which BIP standard | 44', 49', 84', 86' |
coin_type' | Which cryptocurrency | 0' (BTC), 60' (ETH), 2' (LTC) |
account' | Account separation | 0', 1', 2' |
change | External/internal | 0 (receiving), 1 (change) |
address_index | Address number | 0, 1, 2, ... |
Hardened vs. Normal Derivation
The apostrophe (') denotes hardened derivation. This is a fundamental security concept in HD wallets.
Normal (non-hardened) derivation (m/0/1/2):
- The parent public key can derive all child public keys
- If a child private key and the parent public key are both compromised, the parent private key can be calculated
- Used for the
changeandaddress_indexlevels
Hardened derivation (m/0'/1'/2'):
- Only the parent private key can derive child keys
- Compromising a child key does not expose the parent
- Used for
purpose,coin_type, andaccountlevels
The security rationale: the first three levels (purpose', coin_type', account') use hardened derivation to create a firewall. Even if an attacker obtains a child private key at the address level, they cannot work backward past the hardened boundary to discover your master key or keys for other accounts or cryptocurrencies.
Standard Derivation Paths by Wallet
Different wallet software may use different derivation paths. Here is a reference for common wallets:
| Wallet | Bitcoin Path | Ethereum Path | Note |
|---|---|---|---|
| Ledger Live | m/84'/0'/0'/0/x | m/44'/60'/0'/0/x | Native SegWit default |
| Trezor Suite | m/84'/0'/0'/0/x | m/44'/60'/0'/0/x | Native SegWit default |
| Electrum | m/84'/0'/0'/0/x | N/A | Native SegWit default |
| MetaMask | N/A | m/44'/60'/0'/0/x | Ethereum only |
| BlueWallet | m/84'/0'/0'/0/x | N/A | Native SegWit default |
| Exodus | m/84'/0'/0'/0/x | m/44'/60'/0'/0/x | Multi-chain |
| Trust Wallet | m/84'/0'/0'/0/x | m/44'/60'/0'/0/x | Multi-chain |
| Coinbase Wallet | m/44'/0'/0'/0/x | m/44'/60'/0'/0/x | Legacy for BTC |
| Mycelium | m/84'/0'/0'/0/x | N/A | Bitcoin only |
| Wasabi | m/84'/0'/0'/0/x | N/A | Privacy-focused |
When recovering funds, knowing which path your original wallet used is essential. The Key Derivation Tool helps you systematically explore paths to find where your keys are.
Step-by-Step: Using the Key Derivation Tool
Step 1: Open the Tool
Navigate to safeseed.app/tools/key-derivation/. As with all SafeSeed tools, the operations run entirely in your browser.
Security reminder: If entering a seed phrase for real funds, use an air-gapped machine. See the Offline Usage Guide.
Step 2: Enter Your Seed Phrase
Input your 12-word or 24-word BIP-39 mnemonic phrase. Optionally enter a passphrase. The tool validates the phrase and displays the master seed (512-bit hex) derived via PBKDF2.
Step 3: View the Master Key
After entering a valid seed phrase, the tool displays the master key information:
- Master Private Key (xprv): The root private key from which all other keys are derived. This is the most sensitive piece of data in the entire key hierarchy.
- Master Public Key (xpub): The corresponding public key. From this key, all child public keys can be derived (for non-hardened paths).
- Master Chain Code: A 256-bit value used alongside the key in the derivation function. The chain code adds an additional layer of unpredictability to child key derivation.
Step 4: Navigate the Derivation Tree
The Key Derivation Tool presents the key hierarchy as an interactive tree. You can:
- Click on tree nodes to expand them and see child keys
- Enter a custom path in the path input field (e.g.,
m/84'/0'/0'/0/0) - Toggle between private and public key display
- Copy any key or path for use in other tools or wallets
Step 5: Inspect a Specific Key
When you select a node in the tree, the tool displays complete information for that key:
- Derivation Path: The full path from master to this key
- Private Key: The key at this level (in extended format and WIF where applicable)
- Public Key: The corresponding public key (compressed)
- Chain Code: The chain code at this level
- Fingerprint: A 4-byte identifier for this key (used in extended key serialization)
- Derived Address: The cryptocurrency address (for leaf-level keys)
Step 6: Explore Different Purposes
Navigate through different BIP standards to understand how the same seed produces different address types:
BIP-44 (Legacy): m/44'/0'/0'/0/0
- Produces Legacy addresses starting with
1 - Highest transaction fees
- Maximum compatibility with older systems
BIP-49 (SegWit): m/49'/0'/0'/0/0
- Produces SegWit addresses starting with
3 - Medium transaction fees
- Good compatibility
BIP-84 (Native SegWit): m/84'/0'/0'/0/0
- Produces Native SegWit addresses starting with
bc1q - Low transaction fees
- Standard for modern wallets
BIP-86 (Taproot): m/86'/0'/0'/0/0
- Produces Taproot addresses starting with
bc1p - Lowest transaction fees
- Latest standard, supports advanced scripting
Deep Dive: How BIP-32 Derivation Works
Understanding the mathematics behind key derivation is not necessary for using the tool, but it provides valuable insight for anyone who wants to truly understand their wallet's security.
HMAC-SHA512 Child Key Derivation
BIP-32 uses HMAC-SHA512 to derive child keys. The process differs for hardened and normal derivation:
Normal child key derivation:
HMAC-SHA512(
key = parent_chain_code,
data = parent_public_key || child_index
) → (child_key_data, child_chain_code)
child_private_key = parent_private_key + child_key_data (mod n)
Hardened child key derivation:
HMAC-SHA512(
key = parent_chain_code,
data = 0x00 || parent_private_key || child_index
) → (child_key_data, child_chain_code)
child_private_key = parent_private_key + child_key_data (mod n)
The critical difference: hardened derivation uses the private key as input, while normal derivation uses the public key. This means hardened child keys cannot be derived from the parent public key alone.
Extended Key Serialization
Extended keys (xprv/xpub) encode several pieces of information:
| Field | Size | Description |
|---|---|---|
| Version | 4 bytes | Network and key type (0488ADE4 for xprv, 0488B21E for xpub) |
| Depth | 1 byte | How many levels from the master key |
| Parent fingerprint | 4 bytes | First 4 bytes of the parent key's hash |
| Child index | 4 bytes | Which child this is (with hardened bit) |
| Chain code | 32 bytes | The chain code |
| Key data | 33 bytes | The private or public key |
The entire structure is Base58Check encoded to produce the familiar xprv... or xpub... string. Different version bytes produce ypub/zpub for SegWit and Native SegWit, respectively.
Practical Applications
Application 1: Debugging Wallet Recovery
Scenario: You recovered your seed phrase in a new wallet but your Bitcoin balance shows zero.
Diagnosis with Key Derivation Tool:
- Enter your seed phrase into the Key Derivation Tool
- Navigate to
m/84'/0'/0'/0/0(Native SegWit, most common modern path) - Note the address — check it on mempool.space
- If no balance, try
m/44'/0'/0'/0/0(Legacy) - Try
m/49'/0'/0'/0/0(SegWit) - Try
m/86'/0'/0'/0/0(Taproot) - If still no balance, try account
1':m/84'/0'/1'/0/0 - Check both external (change=
0) and internal (change=1) chains
This systematic exploration reveals exactly where your funds reside in the derivation tree.
Application 2: Understanding Watch-Only Wallets
Scenario: You want to set up a watch-only wallet to monitor your Bitcoin balance without exposing private keys.
Using the Key Derivation Tool:
- Enter your seed phrase (on an air-gapped machine)
- Navigate to the account level:
m/84'/0'/0' - Copy the extended public key (zpub) at this level
- Import this zpub into your watch-only wallet software (e.g., Electrum, BlueWallet)
- The watch-only wallet can derive all receiving and change addresses below this level
- It cannot derive private keys or sign transactions
The Key Derivation Tool shows you exactly which level of the tree to export, and what information is contained in the extended public key.
Application 3: Multi-Account Organization
Scenario: You want to separate your Bitcoin holdings into distinct accounts (e.g., savings, trading, business) while using one seed phrase.
Using the Key Derivation Tool:
- Account 0:
m/84'/0'/0'— Personal savings - Account 1:
m/84'/0'/1'— Trading - Account 2:
m/84'/0'/2'— Business
Each account has its own set of addresses and extended keys. The hardened derivation at the account level ensures that compromising one account's keys does not affect others.
Application 4: Cross-Chain Key Exploration
Scenario: You want to understand how one seed phrase generates addresses for both Bitcoin and Ethereum.
Using the Key Derivation Tool:
- Enter your seed phrase
- Navigate to
m/44'/0'/0'/0/0— this is Bitcoin's key - Navigate to
m/44'/60'/0'/0/0— this is Ethereum's key - Observe: the keys are completely different despite coming from the same seed
- The
coin_typelevel (0'vs60') is where the trees diverge
This demonstrates how BIP-44's hierarchy prevents any overlap between chains while maintaining single-seed recoverability.
Application 5: Verifying Hardware Wallet Behavior
Scenario: You want to confirm that your hardware wallet is not lying about which addresses it controls.
Using the Key Derivation Tool:
- On an air-gapped machine, enter the seed phrase you initialized your hardware wallet with
- Derive the first 10 addresses on the same path your hardware wallet uses
- Compare each address with what the hardware wallet displays
- If they all match, the hardware wallet is correctly implementing BIP-32/44 derivation
- If they differ, there may be a firmware issue, a different passphrase, or a derivation path mismatch
Understanding Change Addresses
One of the most confusing aspects of HD wallets for new users is the concept of change addresses. The Key Derivation Tool helps demystify this.
What Are Change Addresses?
In Bitcoin (and similar UTXO-based chains), when you spend from an address, you typically consume the entire "unspent transaction output" (UTXO) at that address. If you want to send 0.5 BTC but the UTXO is 1.0 BTC, the transaction creates two outputs:
- 0.5 BTC to the recipient's address
- 0.5 BTC (minus fees) to a change address that you control
This change address comes from the internal chain (change = 1) in your derivation path:
- Receiving addresses:
m/84'/0'/0'/0/x - Change addresses:
m/84'/0'/0'/1/x
Viewing Change Addresses in the Key Derivation Tool
Navigate to the change chain by setting the change component to 1:
| Path | Type | Purpose |
|---|---|---|
m/84'/0'/0'/0/0 | External | First receiving address |
m/84'/0'/0'/0/1 | External | Second receiving address |
m/84'/0'/0'/1/0 | Internal | First change address |
m/84'/0'/0'/1/1 | Internal | Second change address |
Understanding change addresses is crucial for wallet recovery. If you only scan external addresses, you might miss funds sitting at change addresses. The Key Derivation Tool shows both chains.
SLIP-44 Coin Types
The coin_type level in BIP-44 paths uses registered values from SLIP-44. Here are the most commonly used:
| Coin | SLIP-44 Type | Path Prefix |
|---|---|---|
| Bitcoin | 0' | m/84'/0'/... |
| Bitcoin Testnet | 1' | m/84'/1'/... |
| Litecoin | 2' | m/84'/2'/... |
| Dogecoin | 3' | m/44'/3'/... |
| Ethereum | 60' | m/44'/60'/... |
| Ethereum Classic | 61' | m/44'/61'/... |
| Bitcoin Cash | 145' | m/44'/145'/... |
| Stellar | 148' | m/44'/148'/... |
| Ripple (XRP) | 144' | m/44'/144'/... |
| Cardano | 1815' | m/1852'/1815'/... |
| Solana | 501' | m/44'/501'/... |
| Polkadot | 354' | m/44'/354'/... |
| Cosmos | 118' | m/44'/118'/... |
| Tron | 195' | m/44'/195'/... |
| Avalanche | 9000' | m/44'/9000'/... |
The Key Derivation Tool uses these registered values when you select a cryptocurrency, but you can also enter custom paths manually.
For the complete list, see Supported Blockchains.
Advanced: Gap Limit and Address Discovery
When a wallet recovers from a seed phrase, it needs to figure out which addresses have been used. It does this by scanning addresses sequentially from index 0 and checking for transaction history on the blockchain.
The gap limit is the number of consecutive unused addresses a wallet scans before stopping. The BIP-44 standard recommends a gap limit of 20. This means if addresses 0-15 have been used but addresses 16-35 have not, the wallet scans up to address 35 (16 + 20 gap) and concludes there are no more used addresses.
Implications:
- If you generate more than 20 sequential addresses in SafeSeed's Address Generator and use non-sequential ones (e.g., skip from index 5 to index 30), some wallets may not discover the later addresses during recovery
- Most wallets allow you to increase the gap limit in settings
- The Key Derivation Tool helps you understand exactly which indices have been derived and potentially used
FAQ
What is the relationship between BIP-32, BIP-44, BIP-49, BIP-84, and BIP-86?
BIP-32 defines the core algorithm for hierarchical deterministic key derivation — how to go from a parent key to a child key. BIP-44 defines a standard organization for the resulting key tree (purpose/coin/account/change/index). BIP-49, BIP-84, and BIP-86 are extensions that use the same BIP-32 algorithm and BIP-44 structure but specify different purpose values (49, 84, 86) and address encoding formats (SegWit, Native SegWit, Taproot respectively).
Can I use the Key Derivation Tool to find lost cryptocurrency?
If you have the correct seed phrase but don't know which derivation path was used, the Key Derivation Tool can help you systematically explore all standard paths. Derive addresses for each path combination and check them on a blockchain explorer. This is the most common use case for wallet recovery debugging.
What does "hardened" derivation mean in practice?
Hardened derivation means the child key can only be derived using the parent private key. In practical terms, it creates a security boundary: if someone obtains a child key below a hardened node, they cannot work backward to discover the parent private key. This is why the first three levels of BIP-44 paths (purpose, coin_type, account) are hardened — it prevents a compromise at the address level from exposing your master key.
Why does my wallet show a zpub instead of an xpub?
The prefix (xpub, ypub, zpub) indicates the address format the extended public key is intended for. xpub is for Legacy (BIP-44), ypub is for SegWit (BIP-49), and zpub is for Native SegWit (BIP-84). They all contain the same type of data (an extended public key with chain code), but the version byte differs to signal the expected address format. The Key Derivation Tool shows which format applies at each level.
Can I derive Ethereum keys using BIP-84 paths?
Technically, you can derive keys at any path, but Ethereum uses BIP-44 (m/44'/60'/...) by convention. BIP-84 is a Bitcoin-specific standard for Native SegWit addresses. The Key Derivation Tool will correctly derive Ethereum addresses when you use the standard Ethereum path. Using non-standard paths would produce valid keys but no wallet software would recognize them.
What happens if I use the wrong account index?
If you derived addresses from account 0' but your funds are at account 1', they will not appear in a standard wallet scan. The Key Derivation Tool lets you navigate to different account indices to discover which account holds your funds. Most wallets use account 0' by default, but some allow creating additional accounts.
How does the Key Derivation Tool handle the passphrase?
The passphrase (25th word) is applied during the initial seed derivation step (BIP-39), before any BIP-32 key derivation begins. A different passphrase produces a completely different master seed, which in turn produces an entirely different key tree. The Key Derivation Tool shows the master seed after passphrase application, so you can verify that you are working with the correct seed.
Is there a maximum depth for key derivation?
BIP-32 theoretically supports derivation to arbitrary depth, but BIP-44 standardizes at five levels (purpose/coin/account/change/index). Going deeper than five levels is non-standard and not supported by any common wallet software. The Key Derivation Tool supports the standard five levels and allows custom paths for advanced exploration.
Related Guides
- SafeSeed Tools Overview — Overview of all SafeSeed tools
- Seed Phrase Generator Tutorial — Generate the seed phrase that feeds into key derivation
- Address Generator Tutorial — Derive addresses from specific paths
- Supported Blockchains — SLIP-44 coin types and supported chains
- Using SafeSeed Offline — Air-gapped key derivation for maximum security