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.
What this means in simple English
An RPC is a command sent to one Bitcoin Core node. It can ask that node for information or request a local action. A successful reply describes that node; it does not automatically prove what happened across the Bitcoin network.
Beginners can focus on the input, the result and the limit of that result. Operators should test the command on the exact Bitcoin Core version they run before relying on it.
Simple example
Think of a mempool as one node’s waiting room for valid transactions that have not yet entered a block. Different nodes can have different waiting rooms, and the contents can change from one second to the next.
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 Bitcoin Core createwalletdescriptor RPC?
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.
Is Bitcoin Core createwalletdescriptor RPC active or supported today?
Require a second reviewer and explicit rollback or expiry, and pause payments, signing or network-dependent services until post-change evidence is complete.
Why does Bitcoin Core createwalletdescriptor RPC matter?
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.
Do beginners need to use the technical details?
No. The command is mainly for people who operate Bitcoin Core or software connected to it. Other readers can use the article to understand what an operator or service is measuring.
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.
