Skip to content

Output Descriptors

This directory contains documentation for Bitcoin Output Descriptor implementation.

Contents

DocumentDescriptionAudience
user-guide.mdHow to use descriptors for address generationOperators
architecture.mdDescriptor architecture following Clean ArchitectureDevelopers
development.mdDevelopment guide for descriptor featuresDevelopers
api.mdAPI reference for descriptor operationsDevelopers
examples.mdDescriptor format examplesAll
compatibility.mdBitcoin Core compatibility notesDevelopers
migration.mdMigration guide from legacy address handlingAll

What are Output Descriptors?

Output Descriptors are a language for describing collections of output scripts. They provide:

  • Precise Address Specification: Unambiguous description of how to derive addresses
  • Wallet Interoperability: Standard format supported by Bitcoin Core and other wallets
  • Backup Simplicity: Single string captures all information needed to recover addresses

Supported Descriptor Types

TypeDescriptionExample
pkh()P2PKH (Legacy)pkh([fingerprint/44'/0'/0']xpub.../0/*)
sh(wpkh())P2SH-P2WPKH (Nested SegWit)sh(wpkh([...]))
wpkh()P2WPKH (Native SegWit)wpkh([fingerprint/84'/0'/0']xpub.../0/*)
tr()P2TR (Taproot)tr([fingerprint/86'/0'/0']xpub.../0/*)
wsh()P2WSH (Multisig)wsh(multi(2,...))

References