In case you’re utilizing Bitcoin Core 23.0, and created a brand new pockets utilizing that, it’s by default a descriptor pockets. These are a brand new era of wallets which use Output Descriptors to find out which keys/scripts/addresses “belong” to the pockets, versus legacy wallets which use a a lot much less well-defined course of to find out this.
A number of RPCs, just like the importaddress
, importpubkey
, and importmulti
are disabled for descriptor wallets, for the straightforward purpose that the conduct they’ve for legacy wallets can’t be precisely replicated for descriptor wallets. It is a good factor – it was extraordinarily sophisticated to purpose about what that conduct is.
If you wish to import one thing right into a descriptor pockets, you want the importdescriptors
RPC as a substitute. This single RPC subsumes the performance of
all legacy import instructions in a single RPC, by utilizing the Output Descriptor language to specify what to import. That features the power to import single addresses (utilizing addr([ADDR])
descriptors), or ranges of HD key-derived scripts (e.g. wpkh([XPUB]/0/1/2/*)
would import all P2WPKH addresses derived from xpub [XPUB]
, with derivation path m/0/1/2/0
, m/0/1/2/1
, m/0/1/2/2
, …).
The documentation on developer.bitcoin.org appears outdated. The Bitcoin Core 23.0 RPC documentation (accessible by the assist
RPC command) does say:
Notice: This command is simply appropriate with legacy wallets. Use “importdescriptors” with “addr(X)” for descriptor wallets.