LearnBitcoin

Glossary

Output Descriptor

A human-readable notation describing how to generate or watch specific Bitcoin scripts/addresses.

An output descriptor is a compact text format that describes how to derive a set of Bitcoin scripts and addresses. It replaces ad-hoc collections of "raw addresses" with a self-contained recipe a wallet can plug in and start watching or spending from.

A typical descriptor looks like:

wpkh([d34db33f/84h/0h/0h]xpub6BosfCnifzxcF.../<0;1>/*)#cm5e6jrn

Decoded:

  • wpkh(...) - the script type. Here, witness public-key hash (P2WPKH, native SegWit).
  • [d34db33f/84h/0h/0h] - the BIP 32 origin: master key fingerprint and the derivation path used to reach this xpub.
  • xpub6Bos... - the extended public key.
  • /<0;1>/* - multipath: derive children at both /0/* (receive) and /1/* (change); the * stands for the unhardened child indexes, which a wallet scans over a range (0 to 1000 by default in Bitcoin Core).
  • #cm5e6jrn - a checksum so typos fail fast at import time.

Why descriptors matter:

  • Self-describing. Anyone reading the descriptor can derive the same addresses without out-of-band conventions like "we used BIP 84 with account 0 and SegWit." The descriptor encodes all of that explicitly.
  • Watch-only wallets. Hand a descriptor (no private keys) to a phone or laptop and it can monitor balances and build unsigned PSBTs.
  • Multisig coordination. A multisig wallet is described by a single descriptor like wsh(sortedmulti(2,xpub_A/<0;1>/*,xpub_B/<0;1>/*,xpub_C/<0;1>/*)). Cosigners import the same descriptor and derive the same receive and change addresses.
  • Tooling interoperability. The language is standardized in BIP 380 and its companion BIPs, so a descriptor means the same thing in Bitcoin Core as in any other wallet that supports the standard. Move your watch-only wallet between tools by copying one string.

Bitcoin Core introduced descriptor wallets as an experimental option in 0.21 (January 2021), made them the default for new wallets in 23.0 (April 2022), and removed legacy wallets outright in 30.0 (October 2025): an old wallet can still be migrated, but no longer created or loaded. The legacy-only RPCs, addmultisigaddress among them, went with it.

For most users, descriptors stay invisible; the wallet handles them. For multisig setups, integrators, and anyone debugging a custody configuration, they're the lingua franca.

Key takeaways

  • Simplifies sharing and managing sets of addresses/scripts
  • Works with watch-only wallets or complex multi-sig setups
  • Improves clarity over older, ad hoc address generation approaches

Corrected

  • Was: The entry said Bitcoin Core made descriptor wallets the default in 0.21 (2021) and mandatory for new wallets in 0.22, and that the legacy addmultisigaddress style of wallet management was deprecated.

    Now: Bitcoin Core 0.21 (January 2021) introduced descriptor wallets as an experimental, non-default option; 23.0 (April 2022) made them the default for new wallets; 30.0 (October 2025) removed legacy wallets and the legacy-only RPCs, addmultisigaddress included. There was never a Bitcoin Core 0.22. Details

Sources (6)

External references (2)

Related terms (6)

Published . Revised . One correction logged for this page.

Edit this page on GitHub