LearnBitcoin

Glossary

Address Derivation Path

A structured route in hierarchical deterministic (HD) wallets (e.g., m/44'/0'/0'/0/0) to generate a sequence of keys and addresses.

A derivation path is the slash-separated route into a BIP 32 HD wallet tree, telling the wallet exactly which key to derive from the master seed. The format, as laid out in BIP 44, is:

m / purpose' / coin_type' / account' / change / address_index

The apostrophe (often written h instead) marks a hardened derivation level. The first three levels are hardened so that an extended public key plus one leaked child key cannot be turned into the keys of the accounts beside it.

The purpose-level conventions in practice:

  • BIP 44 (m/44h/0h/0h/0/0) - the original multi-account convention. Legacy P2PKH 1... addresses.
  • BIP 49 (m/49h/0h/0h/0/0) - P2SH-wrapped SegWit (3... addresses).
  • BIP 84 (m/84h/0h/0h/0/0) - native SegWit (bc1q... addresses). Bitcoin Core's descriptor wallets derive their bc1q addresses here.
  • BIP 86 (m/86h/0h/0h/0/0) - Taproot (bc1p... addresses).
  • BIP 48 (m/48h/0h/0h/<script>h/0/0) - the multisig convention, with an extra level for the script type.

Reading the parts:

  • purpose - which spec governs the address format below this level.
  • coin_type - the registered coin type. Bitcoin is 0; testnet is 1; other chains have their own.
  • account - independent account index. Account 0 is the default; accounts 1, 2, and so on keep separate pots of coins under one seed.
  • change - 0 for receiving addresses (BIP 44 calls this the external chain), 1 for change addresses (the internal chain).
  • address_index - the sequential counter for individual addresses.

The same seed plus the same derivation path always produces the same private key, on any wallet that follows the convention. That's why a BIP 39 seed phrase is portable: import it into any wallet that uses BIP 84 (or 86, or 44, or whatever convention generated the addresses) and you get back the same keys.

Mismatched derivation paths are the canonical "I restored my wallet and don't see my balance" failure: the seed is right but the wallet is looking at a different branch of the tree. Not every wallet uses the standard paths, as BIP 380 notes, so a restore sometimes needs the path entered by hand.

Key takeaways

  • Structures how HD wallets generate multiple addresses
  • Specified in BIPs like BIP-32 and BIP-44
  • Ensures wallet interoperability and organization

Corrected

  • Was: The entry said some wallets reserve change index 2 for internal change, and called the second path level a registered chain ID.

    Now: BIP 44 defines two chains only: 0, the external chain for receiving addresses, and 1, the internal chain for change. The second level is the registered coin type, 0 for Bitcoin and 1 for testnet. Details

Sources (6)

Related terms (11)

Published . Revised . One correction logged for this page.

Edit this page on GitHub