mirror of
https://github.com/bitcoin/bips.git
synced 2026-10-19 19:29:18 +00:00
bip-138 document common derivation paths to try automatically
This commit is contained in:
32
bip-0138.md
32
bip-0138.md
@@ -206,11 +206,43 @@ Note: the derivation-path vector should not contain duplicates.
|
||||
Derivation paths are optional; they can be useful to simplify the recovery process
|
||||
if one has used a non-common derivation path to derive his key.[^derivation-optional]
|
||||
|
||||
All implementations that can fetch xpubs from a signing device SHOULD try the following
|
||||
common paths automatically:
|
||||
|
||||
- `m/44h/<coin>h/{0..9}h`
|
||||
- `m/49h/<coin>h/{0..9}h`
|
||||
- `m/84h/<coin>h/{0..9}h`
|
||||
- `m/86h/<coin>h/{0..9}h`
|
||||
- `m/87h/<coin>h/{0..9}h`
|
||||
- `m/48h/<coin>h/{0..9}h/1h`
|
||||
- `m/48h/<coin>h/{0..9}h/2h`
|
||||
|
||||
`<coin>` is the BIP44 coin type of the network being recovered: `0` for mainnet
|
||||
and `1` for test networks. `{0..9}h` covers accounts 0 through 9.
|
||||
|
||||
Some signing devices can fail or require confirmation when fetching xpubs for
|
||||
some of these paths. This list is not exhaustive: an implementation MAY treat a
|
||||
path as allowed to fail for any device it supports, in particular
|
||||
`m/87h/<coin>h/{0..9}h`, which is widely under-supported. Implementations SHOULD
|
||||
at least classify these:[^common-derivation-paths]
|
||||
|
||||
- BitBox02: `m/44h/<coin>h/{0..9}h`, `m/87h/<coin>h/{0..9}h`
|
||||
- Ledger: `m/87h/<coin>h/{0..9}h`
|
||||
|
||||
If fetching an xpub for one of these common paths fails or times out,
|
||||
implementations SHOULD warn the user.
|
||||
|
||||
[^derivation-optional]: **Why are derivation paths optional?**
|
||||
When standard derivation paths are used, they are easily discoverable, making
|
||||
them straightforward to brute-force. Omitting them enhances privacy by reducing
|
||||
the information shared publicly about the descriptor scheme.
|
||||
|
||||
[^common-derivation-paths]: **Why this restricted list?**
|
||||
The list covers common account paths for the network being recovered, accounts 0
|
||||
through 9. Some signing devices reject or display some of these paths before
|
||||
exporting an xpub, so implementations should treat the listed paths for that
|
||||
device as optional rather than aborting recovery.
|
||||
|
||||
`DERIVATION_PATH` follows this format:
|
||||
|
||||
`COUNT`
|
||||
|
||||
Reference in New Issue
Block a user