Output script descriptors
Also covering Descriptors
Output script descriptors are strings that contain all the information necessary to allow a wallet or other program to track payments made to or spent from a particular script or set of related scripts (i.e. an address or a set of related addresses such as in an HD wallet).
Descriptors combine well with miniscript in allowing a wallet to handle tracking and signing for a larger variety of scripts. They also combine well with PSBTs in allowing the wallet to determine which keys it controls in a multisig script.
Primary code and documentation
Optech newsletter and website mentions
2024
- Bitcoin Core #30708 adds
getdescriptoractivity
RPC command - Bitcoin Core #22838 implements multiple derivation path descriptors (BIP389)
- BIPs 328, 390, and 373 added with specifications for MuSig2 key derivation, descriptors, and PSBTs
- BIPs #1567 adds BIP387 with new
multi_a()
andsortedmultia_a()
descriptors - BIP388 added with wallet policies for descriptor wallets
- Notes from Bitcoin developer discussion about descriptors for silent payments
- Proposed BIP specifying how to include descriptors in PSBTs
- How to specify unspendable keys in descriptors
2023
- Bitcoin Core #27255 ports miniscript to tapscript, providing tapscript descriptors
- BIPs #1354 adds BIP389 for multiple derivation path descriptors
- Bitcoin Core #24149 adds signing support for P2WSH-based miniscript-based output descriptors
2022
- 2022 year-in-review: miniscript descriptors in Bitcoin Core
- How partial descriptors could help create tapleaf trees
- New descriptor proposed for silent payments
- Bitcoin Core #23480 adds a
rawtr()
descriptor - BIP proposed to allow multiple derivation paths in a descriptor
- Bitcoin Core #24148 adds watch-only support for descriptors containing miniscript
- PR Review Club about miniscript support for descriptors
- Adapting descriptors and miniscript for hardware signing devices
- Bitcoin Core #24043 adds new
multi_a
andsortedmulti_a
descriptors for taproot multisig - HWI #545 adds support for taproot
tr()
descriptors
2021
- 2021 year-in-review: output script descriptors
- Bitcoin Core #22364 adds support for creating taproot descriptors in the wallet
- Bitcoin Core #23002 makes descriptor-based wallets the default for new wallets
- Coldcard 4.1.3 adds support for descriptor-based wallets
- BIPs #1143 introduces BIPs 380-386 specifying output script descriptors
- Output script descriptors versus versioned and unversioned BIP32 seeds
- Seven BIPs proposed for standardized output script descriptors
- Preparing for taproot: output script descriptors
- Bitcoin Core #19651 adds support for updating descriptors via
importdescriptor
- Bitcoin Core #22051 adds support for importing descriptors for taproot outputs
- BIPs #1089 assigns BIP87 to a multisig wallet standard using descriptors
- Bitcoin Core #20867 increases the maximum multisig keys for descriptors to 20
- Specter-DIY v1.5.0 adds full descriptor support
- Specter v1.2.0 includes support for Bitcoin Core descriptor wallets
- Bitcoin Core #19136 extends
getaddressinfo
to return parent descriptors - Bitcoin Dev Kit v0.2.0 released with descriptor support
- Bitcoin Core #20226 adds new
listdescriptors
RPC for its wallet - Bitcoin Core 0.21.0 released with experimental native descriptor wallets
- BTCPay Server 1.0.6.7 released with support for descriptors in wallet setup
- BTCPay Server #2169 adds functions for importing some descriptors
2020
- Bitcoin Wallet Tracker (BWT) adds descriptor support
- Q&A about migration from legacy wallets to descriptor wallets
- C-Lightning #4171 allows retrieving the wallet’s onchain descriptors
- Field Report: Using descriptors at River Financial
- Bitcoin Core #16528 adds support for native output descriptor wallets
- Bitcoin Core #18032 add
descriptor
field to multisig address RPCs - Encoded descriptors (e.g., with base64)
2019
2018
See also
Previous Topic:
Output linking
Next Topic:
Package relay