Output descriptor
Also called: output script descriptor, descriptor, wallet descriptor, descriptors, descriptor wallet, wpkh(), tr().
An output descriptor is a short text string that says exactly which scripts and addresses a wallet uses: script type, keys and derivation paths.
An output descriptor (in full, an output script descriptor) is a compact, human-readable description of a set of Bitcoin output scripts. It records the three things a seed phrase leaves out: the script type, the keys involved and their derivation paths.
What one looks like
wpkh([d34db33f/84h/0h/0h]xpub6.../0/*)#checksum
wpkh(...)is the script expression: native SegWit P2WPKH.[d34db33f/84h/0h/0h]is the key origin: the master key's fingerprint and the path to the account.xpub6...is the account xpub, and/0/*means every receiving address below it.#checksumis an 8-character checksum that catches typos.
Other expressions include pkh(), sh(), wsh(), multi(), sortedmulti(), tr() and multi_a(), and they nest: sh(wpkh(...)) is wrapped SegWit and wsh(sortedmulti(2,...)) with three keys is a 2-of-3 multisig.
The BIPs
Pieter Wuille and Ava Chow specified descriptors as a family: BIP 380 (syntax, key expressions and checksums), BIP 381 to BIP 385 (legacy, SegWit, multisig, combo(), raw() and addr()), BIP 386 (tr() for Taproot) and BIP 387 (multi_a() for tapscript multisig). BIP 389 proposes /<0;1>/* to cover receive and change addresses in one descriptor, and Miniscript (BIP 379) extends the language to complex spending policies.
Why it matters
A descriptor plus its keys is a complete wallet backup: any compatible wallet can find every address without guessing paths or script types. Bitcoin Core's wallet is built on descriptors. Read the output descriptors guide.