I noticed that if I listdescriptors true
immediately after creating a brand new wallet, it would list 8 descriptors that all use the same xprv
key.
However, listdescriptors false
would list 8 xpub
keys, and they are not all the same key. Note in the example below how public keys start with:
xpub6ChP1W
xpub6CyAaD
xpub6Cc74F
xpub6BmTmL
Why are they different?
Example
Public (API parameter "private": false):
Key Active Internal
pkh( [ab7bc48f/44'/0'/0']xpub6ChP1W.../0/*) #ma29dzhm + -
pkh( [ab7bc48f/44'/0'/0']xpub6ChP1W.../1/*) #2f0ysh8r + +
sh(wpkh([ab7bc48f/49'/0'/0']xpub6CyAaD.../0/*)) #zwwuauzd + -
sh(wpkh([ab7bc48f/49'/0'/0']xpub6CyAaD.../1/*)) #h0q29rhj + +
tr( [ab7bc48f/86'/0'/0']xpub6Cc74F.../0/*) #l6jyecux + -
tr( [ab7bc48f/86'/0'/0']xpub6Cc74F.../1/*) #wwh9ydv7 + +
wpkh( [ab7bc48f/84'/0'/0']xpub6BmTmL.../0/*) #80mc28c3 + -
wpkh( [ab7bc48f/84'/0'/0']xpub6BmTmL.../1/*) #km7ehjgf + +
Private (API parameter "private": true):
Key Active Internal
pkh( xprv9s21Zr.../44'/0'/0'/0/*) #5l2phqsm + -
pkh( xprv9s21Zr.../44'/0'/0'/1/*) #9t0q24qr + +
sh(wpkh(xprv9s21Zr.../49'/0'/0'/0/*)) #r78qs2yd + -
sh(wpkh(xprv9s21Zr.../49'/0'/0'/1/*)) #9a09t80e + +
tr( xprv9s21Zr.../86'/0'/0'/0/*) #02tnkr5v + -
tr( xprv9s21Zr.../86'/0'/0'/1/*) #77wjtky5 + +
wpkh( xprv9s21Zr.../84'/0'/0'/0/*) #93lra6e7 + -
wpkh( xprv9s21Zr.../84'/0'/0'/1/*) #596zq0fx + +
Backing Up Descriptors
My understanding was that having saved the xprv
key only, I'd be able to fully recreate a similar wallet on a different node - because I could derive xpub
from xprv
. But now I got confused - how would I derive those xpub
s, and why there are more than one.