Home › Compare › BIP 44 vs 49 vs 84 vs 86: which derivation path?

BIP 44 vs 49 vs 84 vs 86: which derivation path?

All four standards use the same path shape, m / purpose' / coin_type' / account' / change / index, and differ only in the purpose number and the address type it produces: 44' for legacy addresses starting with 1, 49' for nested SegWit starting with 3, 84' for native SegWit starting with bc1q, and 86' for Taproot starting with bc1p. New single-key wallets normally use BIP 84 or BIP 86.

Updated · 4 min read

At a glance

BIP 44BIP 49BIP 84BIP 86
TitleMulti-Account Hierarchy for Deterministic WalletsDerivation scheme for P2WPKH-nested-in-P2SH based accountsDerivation scheme for P2WPKH based accountsKey Derivation for Single Key P2TR Outputs
StatusDeployedDeployedDeployedDeployed
TypeSpecificationSpecificationSpecificationSpecification
Assigned2014-04-242016-05-192017-12-282021-06-22
AuthorsMarek Palatinus, Pavol RusnakDaniel WeiglPavol RusnakAva Chow
In plain EnglishDefines a standard layout for HD wallets that organizes keys by coin type, account, and receiving versus change addresses. Because wallets share this layout, a recovery phrase from one wallet can usually be restored in another.Defines how HD wallets derive keys for SegWit addresses wrapped inside P2SH, which begin with "3". This let wallets offer cheaper SegWit transactions while staying payable from older software that could not yet send to native SegWit addresses.Specifies the standard key path for HD wallets that use native SegWit addresses (those starting with 'bc1q'). Agreeing on this path means a user can restore the same seed phrase in different wallet apps and find the same addresses and funds.Defines the standard key path for HD wallets that use single-key Taproot addresses (those starting with 'bc1p'). It plays the same role for Taproot that BIP 84 does for SegWit, so seed phrases restore the same Taproot addresses across different wallets.

One layout, four purposes

BIP 44 defined the five-level layout on top of BIP 32: purpose, coin type, account, change and address index, with hardened derivation (the apostrophe) on the first three levels. Following BIP 43, the purpose number matches the number of the BIP that defines the branch. BIP 49, BIP 84 and BIP 86 each copy BIP 44's levels, account discovery and gap limit of 20, and change only the purpose and the script built from each key. That's why a single seed phrase can hold four separate wallets at once.

BIP 44 vs 49 vs 84 vs 86 side by side

BIP 44 BIP 49 BIP 84 BIP 86
First receiving path m/44'/0'/0'/0/0 m/49'/0'/0'/0/0 m/84'/0'/0'/0/0 m/86'/0'/0'/0/0
Script type P2PKH P2WPKH nested in P2SH P2WPKH P2TR, key path only
Address starts with 1 3 bc1q bc1p
Address encoding Base58Check Base58Check Bech32 Bech32m
Account key prefix xpub ypub zpub xpub
Testnet prefix tpub upub vpub tpub
Signature ECDSA ECDSA ECDSA Schnorr
Typical input size ~148 vB ~91 vB ~68 vB ~57.5 vB
Output size 34 bytes 32 bytes 31 bytes 43 bytes
Output descriptor pkh() sh(wpkh()) wpkh() tr()

Sizes assume a compressed public key with a 72-byte ECDSA signature, or a 64-byte Schnorr signature for BIP 86.

What each derivation path is for

  • BIP 44 (m/44'), by Marek Palatinus and Pavol Rusnak, came first and predates SegWit. Wallets use it for legacy P2PKH. Every wallet can pay to it, and it is the most expensive to spend from.
  • BIP 49 (m/49'), by Daniel Weigl, wraps a SegWit key hash inside a P2SH script so that wallets able to pay only 3... addresses could still pay SegWit users. It gets much of SegWit's saving but adds a 23-byte scriptSig to every spend.
  • BIP 84 (m/84'), by Pavol Rusnak, is native SegWit: an empty scriptSig, the signature and key in the witness, and a Bech32 bc1q address.
  • BIP 86 (m/86'), by Ava Chow, uses the derived key as a Taproot internal key and tweaks it with no script tree, producing a bc1p output spent with one 64-byte Schnorr signature. It defines no new extended key prefix: its test vectors use plain xprv and xpub, and wallets mark the script type with a tr() output descriptor.

Which derivation path should you use?

  1. New single-key wallet: BIP 84 or BIP 86. BIP 86 inputs are the smallest, but its outputs are 12 bytes larger than BIP 84's, so for an everyday payment with one input and a change output the totals are close; Taproot pulls ahead when you spend several inputs at once. Anyone paying a bc1p address needs Bech32m support. Details: BIP 84 vs BIP 86.
  2. Restoring a wallet: match the old address prefix. 1 points to BIP 44, 3 usually to BIP 49 (multisig and other P2SH scripts also start with 3), bc1q to BIP 84 and bc1p to BIP 86. If you are unsure, try each path in turn: a wrong path shows an empty wallet, it doesn't lose coins.
  3. Multisig: these four are single-key schemes. Multisig wallets use other layouts, such as BIP 48, or descriptors; see the multisig guide.

Head-to-head pages cover the common pairs: BIP 44 vs BIP 84 and BIP 49 vs BIP 84.

Why the prefixes differ

ypub and zpub come from SLIP-0132 version bytes that BIP 49 (0x049d7cb2) and BIP 84 (0x04b24746) adopted, so that an exported account key also tells the importing wallet which address type to generate. BIP 86 skipped this step. Its motivation notes that "there are now solutions which obviate the need for fixed derivation paths for specific script types", meaning descriptors, while many wallets and hardware signers "still use seed backups which lack derivation path and script information", which is why a fixed 86' path is still useful.

Build or decode any of these paths with the derivation path tool and identify an address with the address checker. The derivation paths guide and address types guide cover the background.

Frequently asked questions

Which derivation path should I use for Bitcoin?

For a new single-signature wallet, use BIP 84 (m/84'/0'/0', bc1q addresses) or BIP 86 (m/86'/0'/0', bc1p Taproot addresses). Both cost less to spend from than BIP 44 or BIP 49. Use BIP 44 or BIP 49 mainly to recover older wallets whose addresses start with 1 or 3.

How do I know which derivation path my wallet uses?

Look at a receiving address: 1 suggests BIP 44, 3 suggests BIP 49, bc1q suggests BIP 84 and bc1p suggests BIP 86. An exported account key starting with xpub, ypub or zpub, or a descriptor such as wpkh() or tr(), also tells you. Wallet settings often show the full path. Never paste your seed phrase into a website to find out.

What does m/84'/0'/0'/0/0 mean?

It is the first receiving address of the first account in a BIP 84 wallet: purpose 84 (native SegWit), coin type 0 (bitcoin mainnet), account 0, chain 0 (receiving; 1 would be change) and address index 0. The apostrophes mark hardened derivation, which BIP 44 uses for the purpose, coin type and account levels.

Why does BIP 86 use xpub instead of a new prefix?

BIP 86 doesn't register new SLIP-0132 version bytes, and its test vectors use ordinary xprv and xpub keys. Its motivation points out that newer solutions, such as output descriptors like tr(), can record the script type directly. The trade-off is that an xpub on its own doesn't tell you whether it belongs to a BIP 44 or a BIP 86 account.

Can one seed phrase use all four derivation paths?

Yes. Because the purpose is the first hardened step of the path, 44', 49', 84' and 86' lead to four unrelated branches of the same BIP 32 tree. Coins can sit in all of them at once, and a wallet only shows the branches it scans. Restoring with the wrong path shows an empty wallet, not lost coins.

BIPs in this article

Learn more

Guides

Free tools

Glossary