This guide explains Bitcoin Core createwalletdescriptor RPC in plain English. It shows what the command does, what its result means and what it cannot prove.
TL;DR
- What it is: Bitcoin Core 28.0 introduced createwalletdescriptor to generate and add standard descriptors for an address type the wallet does not yet have. It can help an older descriptor wallet adopt a newer standard such as bech32m Taproot while retaining an HD key already known to the wallet.
- Why it matters: createwalletdescriptor is a convenient policy upgrade, not a routine read call. Treat it as a controlled wallet mutation and prove descriptor derivation, signing and recovery before publishing any new address.
- Current position: Require a second reviewer and explicit rollback or expiry, and pause payments, signing or network-dependent services until post-change evidence is complete.
Bitcoin Core createwalletdescriptor RPC in simple English
Bitcoin Core createwalletdescriptor RPC: Use a cloned wallet first, confirm the missing type, inventory keys, unlock locally, call once, verify both branches, label test addresses and complete backup recovery.
Simple example
A miner is checking Bitcoin Core createwalletdescriptor RPC. Record source commit, binary hash, network, chain identity, configuration and dependencies. Create and verify a new post-change backup before receiving funds under the new descriptor.
Key terms in plain English
- Bitcoin Core:
- Widely used software that validates Bitcoin and can provide wallet, network and operator tools.
- RPC:
- A command that software sends to a node to request information or a local action.
- Taproot:
- A Bitcoin upgrade that added new signature and script options for spending outputs.
- Node:
- A computer running Bitcoin software that checks data and communicates with other peers.
Address type
The required type is legacy, p2sh-segwit, bech32 or bech32m. The wallet rejects a type for which it already has the corresponding descriptor.
Internal and external
By default both receiving and change descriptors are generated. The internal option can restrict creation to change when true or receiving when false.
HD key choice
The optional hdkey selects a key already known by the wallet and listed by gethdkeys. The wallet must possess the private key for the selected HD key.
Encrypted wallets
An encrypted wallet must first be unlocked with walletpassphrase. Keep the unlock duration short and never expose passphrases in command history or logs.
Result
The descs array returns the public descriptors added. Preserve their exact strings and checksums, compare them with listdescriptors and derive sample addresses.
Backup boundary
A pre-change backup cannot describe descriptors added afterward. Create and verify a new post-change backup before receiving funds under the new descriptor.
Safe procedure
Use a cloned wallet first, confirm the missing type, inventory keys, unlock locally, call once, verify both branches, label test addresses and complete backup recovery. Build a revision-pinned evidence pack on an isolated node, wallet or protocol harness. Record source commit, binary hash, network, chain identity, configuration and dependencies.
Frequently asked questions
What is the main point of Bitcoin Core createwalletdescriptor RPC?
Bitcoin Core createwalletdescriptor RPC: Use a cloned wallet first, confirm the missing type, inventory keys, unlock locally, call once, verify both branches, label test addresses and complete backup recovery.
For Bitcoin Core createwalletdescriptor RPC, what should a beginner know about address type?
The required type is legacy, p2sh-segwit, bech32 or bech32m. The wallet rejects a type for which it already has the corresponding descriptor.
For Bitcoin Core createwalletdescriptor RPC, what should a beginner know about internal and external?
By default both receiving and change descriptors are generated. The internal option can restrict creation to change when true or receiving when false.
For Bitcoin Core createwalletdescriptor RPC, what should a beginner know about hd key choice?
The optional hdkey selects a key already known by the wallet and listed by gethdkeys.
Conclusion
createwalletdescriptor is a convenient policy upgrade, not a routine read call. Treat it as a controlled wallet mutation and prove descriptor derivation, signing and recovery before publishing any new address.
Primary sources
Check the current specification status and the documentation for the exact implementation you operate before moving production funds or changing a mining node.
Join the ASIC Mining Discussion
Members can read and join the discussion
Log in to read comments from other miners. Create a free account if you would like to ask a question or share your experience.
Membership helps us protect the discussion from spam and keep answers useful.