Skip to main content

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.

Try It Now

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

ComponentMeaningExample Values
mMaster (root) keyAlways m
purpose'Which BIP standard44', 49', 84', 86'
coin_type'Which cryptocurrency0' (BTC), 60' (ETH), 2' (LTC)
account'Account separation0', 1', 2'
changeExternal/internal0 (receiving), 1 (change)
address_indexAddress number0, 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 change and address_index levels

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, and account levels

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:

WalletBitcoin PathEthereum PathNote
Ledger Livem/84'/0'/0'/0/xm/44'/60'/0'/0/xNative SegWit default
Trezor Suitem/84'/0'/0'/0/xm/44'/60'/0'/0/xNative SegWit default
Electrumm/84'/0'/0'/0/xN/ANative SegWit default
MetaMaskN/Am/44'/60'/0'/0/xEthereum only
BlueWalletm/84'/0'/0'/0/xN/ANative SegWit default
Exodusm/84'/0'/0'/0/xm/44'/60'/0'/0/xMulti-chain
Trust Walletm/84'/0'/0'/0/xm/44'/60'/0'/0/xMulti-chain
Coinbase Walletm/44'/0'/0'/0/xm/44'/60'/0'/0/xLegacy for BTC
Myceliumm/84'/0'/0'/0/xN/ABitcoin only
Wasabim/84'/0'/0'/0/xN/APrivacy-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:

  1. Click on tree nodes to expand them and see child keys
  2. Enter a custom path in the path input field (e.g., m/84'/0'/0'/0/0)
  3. Toggle between private and public key display
  4. 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:

FieldSizeDescription
Version4 bytesNetwork and key type (0488ADE4 for xprv, 0488B21E for xpub)
Depth1 byteHow many levels from the master key
Parent fingerprint4 bytesFirst 4 bytes of the parent key's hash
Child index4 bytesWhich child this is (with hardened bit)
Chain code32 bytesThe chain code
Key data33 bytesThe 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:

  1. Enter your seed phrase into the Key Derivation Tool
  2. Navigate to m/84'/0'/0'/0/0 (Native SegWit, most common modern path)
  3. Note the address — check it on mempool.space
  4. If no balance, try m/44'/0'/0'/0/0 (Legacy)
  5. Try m/49'/0'/0'/0/0 (SegWit)
  6. Try m/86'/0'/0'/0/0 (Taproot)
  7. If still no balance, try account 1': m/84'/0'/1'/0/0
  8. 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:

  1. Enter your seed phrase (on an air-gapped machine)
  2. Navigate to the account level: m/84'/0'/0'
  3. Copy the extended public key (zpub) at this level
  4. Import this zpub into your watch-only wallet software (e.g., Electrum, BlueWallet)
  5. The watch-only wallet can derive all receiving and change addresses below this level
  6. 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:

  1. Account 0: m/84'/0'/0' — Personal savings
  2. Account 1: m/84'/0'/1' — Trading
  3. 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:

  1. Enter your seed phrase
  2. Navigate to m/44'/0'/0'/0/0 — this is Bitcoin's key
  3. Navigate to m/44'/60'/0'/0/0 — this is Ethereum's key
  4. Observe: the keys are completely different despite coming from the same seed
  5. The coin_type level (0' vs 60') 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:

  1. On an air-gapped machine, enter the seed phrase you initialized your hardware wallet with
  2. Derive the first 10 addresses on the same path your hardware wallet uses
  3. Compare each address with what the hardware wallet displays
  4. If they all match, the hardware wallet is correctly implementing BIP-32/44 derivation
  5. 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:

  1. 0.5 BTC to the recipient's address
  2. 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:

PathTypePurpose
m/84'/0'/0'/0/0ExternalFirst receiving address
m/84'/0'/0'/0/1ExternalSecond receiving address
m/84'/0'/0'/1/0InternalFirst change address
m/84'/0'/0'/1/1InternalSecond 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:

CoinSLIP-44 TypePath Prefix
Bitcoin0'm/84'/0'/...
Bitcoin Testnet1'm/84'/1'/...
Litecoin2'm/84'/2'/...
Dogecoin3'm/44'/3'/...
Ethereum60'm/44'/60'/...
Ethereum Classic61'm/44'/61'/...
Bitcoin Cash145'm/44'/145'/...
Stellar148'm/44'/148'/...
Ripple (XRP)144'm/44'/144'/...
Cardano1815'm/1852'/1815'/...
Solana501'm/44'/501'/...
Polkadot354'm/44'/354'/...
Cosmos118'm/44'/118'/...
Tron195'm/44'/195'/...
Avalanche9000'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.