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 44 | BIP 49 | BIP 84 | BIP 86 | |
|---|---|---|---|---|
| Title | Multi-Account Hierarchy for Deterministic Wallets | Derivation scheme for P2WPKH-nested-in-P2SH based accounts | Derivation scheme for P2WPKH based accounts | Key Derivation for Single Key P2TR Outputs |
| Status | Deployed | Deployed | Deployed | Deployed |
| Type | Specification | Specification | Specification | Specification |
| Assigned | 2014-04-24 | 2016-05-19 | 2017-12-28 | 2021-06-22 |
| Authors | Marek Palatinus, Pavol Rusnak | Daniel Weigl | Pavol Rusnak | Ava Chow |
| In plain English | Defines 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 only3...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 Bech32bc1qaddress. - BIP 86 (
m/86'), by Ava Chow, uses the derived key as a Taproot internal key and tweaks it with no script tree, producing abc1poutput spent with one 64-byte Schnorr signature. It defines no new extended key prefix: its test vectors use plainxprvandxpub, and wallets mark the script type with atr()output descriptor.
Which derivation path should you use?
- 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
bc1paddress needs Bech32m support. Details: BIP 84 vs BIP 86. - Restoring a wallet: match the old address prefix.
1points to BIP 44,3usually to BIP 49 (multisig and other P2SH scripts also start with3),bc1qto BIP 84 andbc1pto BIP 86. If you are unsure, try each path in turn: a wrong path shows an empty wallet, it doesn't lose coins. - 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.