This guide explains Bitcoin Core descriptor wallets in plain English. It summarises the important changes, who they affect and what should be checked before an upgrade.
TL;DR
- What it is: Bitcoin Core 0.21 introduced experimental descriptor wallets as an optional wallet type. They store scriptPubKey policy through output descriptors and use SQLite instead of the Berkeley DB backend used by legacy wallets.
- Why it matters: Descriptor wallets made script ownership more explicit in Core 0.21, while changing imports, watch-only semantics and storage. Safe adoption required an experimental boundary, complete descriptor recovery material and independent restoration tests.
- 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 descriptor wallets in simple English
Bitcoin Core descriptor wallets: Descriptor wallets used SQLite, breaking assumptions in tooling that opened Berkeley DB wallet files. Backups and recovery tests must use supported Core interfaces and identify both format and descriptors.
Simple example
A node operator is checking Bitcoin Core descriptor wallets. It does not inherit legacy behaviour that could recognise mutated script types that the wallet never explicitly requested.
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.
- PSBT:
- A portable format for passing an unsigned or partly signed Bitcoin transaction between tools and signers.
- Node:
- A computer running Bitcoin software that checks data and communicates with other peers.
Experimental status
The release warns that functionality was incomplete, bugs could exist and interfaces could change. Use isolated canaries and do not describe the 0.21 implementation as today’s default behaviour.
Creation
A descriptor wallet required the GUI checkbox or descriptors=true in createwallet. Without that choice Core created a legacy wallet; upgradewallet did not convert one format into the other.
Explicit ownership
Descriptor IsMine follows the enumerated scripts specified by wallet descriptors. It does not inherit legacy behaviour that could recognise mutated script types that the wallet never explicitly requested.
Imports and exports
Only complete descriptors could be imported through importdescriptors. Legacy key and script import RPCs were disabled, and descriptor export RPCs had not yet been added in 0.21.
Watch-only and multisig
Watch-only became a per-wallet private-key-disabled model. A private-key-enabled wallet with incomplete multisig keys could fail to sign unpredictably under coin selection, so multisig belonged in a separate PSBT-oriented wallet.
Storage
Descriptor wallets used SQLite, breaking assumptions in tooling that opened Berkeley DB wallet files. Backups and recovery tests must use supported Core interfaces and identify both format and descriptors.
Adoption plan
Inventory policies, create a test wallet, verify descriptors and checksums, receive and change derivation, imports, rescan, PSBT signing, encryption and restoration, then document fallback without assuming cross-format conversion. 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 descriptor wallets?
Bitcoin Core descriptor wallets: Descriptor wallets used SQLite, breaking assumptions in tooling that opened Berkeley DB wallet files.
For Bitcoin Core descriptor wallets, what should a beginner know about experimental status?
The release warns that functionality was incomplete, bugs could exist and interfaces could change.
For Bitcoin Core descriptor wallets, what should a beginner know about creation?
A descriptor wallet required the GUI checkbox or descriptors=true in createwallet.
For Bitcoin Core descriptor wallets, what should a beginner know about explicit ownership?
Descriptor IsMine follows the enumerated scripts specified by wallet descriptors. It does not inherit legacy behaviour that could recognise mutated script types that the wallet never explicitly requested.
Conclusion
Descriptor wallets made script ownership more explicit in Core 0.21, while changing imports, watch-only semantics and storage. Safe adoption required an experimental boundary, complete descriptor recovery material and independent restoration tests.
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.