mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-03-05 14:06:27 -05:00
doc: Mention multipath specifier
This commit is contained in:
parent
0019f61fc5
commit
a0abcbd382
1 changed files with 25 additions and 0 deletions
|
@ -97,6 +97,7 @@ Descriptors consist of several types of expressions. The top level expression is
|
||||||
- [WIF](https://en.bitcoin.it/wiki/Wallet_import_format) encoded private keys may be specified instead of the corresponding public key, with the same meaning.
|
- [WIF](https://en.bitcoin.it/wiki/Wallet_import_format) encoded private keys may be specified instead of the corresponding public key, with the same meaning.
|
||||||
- `xpub` encoded extended public key or `xprv` encoded extended private key (as defined in [BIP 32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki)).
|
- `xpub` encoded extended public key or `xprv` encoded extended private key (as defined in [BIP 32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki)).
|
||||||
- Followed by zero or more `/NUM` unhardened and `/NUM'` hardened BIP32 derivation steps.
|
- Followed by zero or more `/NUM` unhardened and `/NUM'` hardened BIP32 derivation steps.
|
||||||
|
- No more than one of these derivation steps may be of the form `<NUM;NUM;...;NUM>` (including hardened indicators with either or both `NUM`). If such specifiers are included, the descriptor will be parsed as multiple descriptors where the first descriptor uses all of the first `NUM` in the pair, and the second descriptor uses the second `NUM` in the pair for all `KEY` expressions, and so on.
|
||||||
- Optionally followed by a single `/*` or `/*'` final step to denote all (direct) unhardened or hardened children.
|
- Optionally followed by a single `/*` or `/*'` final step to denote all (direct) unhardened or hardened children.
|
||||||
- The usage of hardened derivation steps requires providing the private key.
|
- The usage of hardened derivation steps requires providing the private key.
|
||||||
|
|
||||||
|
@ -256,6 +257,30 @@ Note how the first key is an xprv private key with a specific derivation path,
|
||||||
while the other two are public keys.
|
while the other two are public keys.
|
||||||
|
|
||||||
|
|
||||||
|
### Specifying receiving and change descriptors in one descriptor
|
||||||
|
|
||||||
|
Since receiving and change addresses are frequently derived from the same
|
||||||
|
extended key(s) but with a single derivation index changed, it is convenient
|
||||||
|
to be able to specify a descriptor that can derive at the two different
|
||||||
|
indexes. Thus a single tuple of indexes is allowed in each derivation path
|
||||||
|
following the extended key. When this descriptor is parsed, multiple descriptors
|
||||||
|
will be produced, the first one will use the first index in the tuple for all
|
||||||
|
key expressions, the second will use the second index, the third will use the
|
||||||
|
third index, and so on..
|
||||||
|
|
||||||
|
For example, a descriptor of the form:
|
||||||
|
|
||||||
|
multi(2,xpub.../<0;1;2>/0/*,xpub.../<2;3;4>/*)
|
||||||
|
|
||||||
|
will expand to the two descriptors
|
||||||
|
|
||||||
|
multi(2,xpub.../0/0/*,xpub.../2/*)
|
||||||
|
multi(2,xpub.../1/0/*,xpub.../3/*)
|
||||||
|
multi(2,xpub.../2/0/*,xpub.../4*)
|
||||||
|
|
||||||
|
When this tuple contains only two elements, wallet implementations can use the
|
||||||
|
first descriptor for receiving addresses and the second descriptor for change addresses.
|
||||||
|
|
||||||
### Compatibility with old wallets
|
### Compatibility with old wallets
|
||||||
|
|
||||||
In order to easily represent the sets of scripts currently supported by
|
In order to easily represent the sets of scripts currently supported by
|
||||||
|
|
Loading…
Add table
Reference in a new issue