This guide explains BIP 391 Binary Output Descriptors in plain English. It covers the problem behind the BIP, why it matters and whether the proposal is part of Bitcoin today.
TL;DR
- What it is: BIP 391 specified a binary container for BIP 380 output descriptors and key metadata using PSBT-style key-value maps. Its status is Closed and it identifies BIP 393 as the proposed replacement, so new systems should not present it as the current interoperability target.
- Why it matters: BIP 391 is useful historical context for compact descriptor interchange, but its Closed status is decisive. Compatibility code should be strict and isolated, while new integrations evaluate the proposed replacement and preserve text-descriptor recovery.
- Current position: Its status is Closed and it identifies BIP 393 as the proposed replacement, so new systems should not present it as the current interoperability target.
BIP 391 Binary Output Descriptors in simple English
BIP 391 Binary Output Descriptors: BIP 391 is Closed, Specification, and proposes BIP 393 as its replacement. Implement it only for a documented compatibility requirement and keep the accepted format version explicit.
Simple example
A node operator is checking BIP 391 Binary Output Descriptors. A Binary Output Descriptor consists of the fixed magic bytes 0x62 0x6f 0x64 0xff, one global map and zero or more ordered key maps, following BIP 174 key-pair framing.
Key terms in plain English
- BIP:
- Bitcoin Improvement Proposal: a document describing a proposed rule, standard or process. Its status must be checked separately.
- 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.
Status
BIP 391 is Closed, Specification, and proposes BIP 393 as its replacement. Implement it only for a documented compatibility requirement and keep the accepted format version explicit.
Container
A Binary Output Descriptor consists of the fixed magic bytes 0x62 0x6f 0x64 0xff, one global map and zero or more ordered key maps, following BIP 174 key-pair framing.
Descriptor record
The required global descriptor entry carries an optional birth block and UTF-8 name in key data, plus a BIP 380 descriptor value whose keys are references rather than inline material.
Key references
Descriptor keys use zero-based @index references into the ordered key maps and may carry BIP 389 derivation paths. Missing, out-of-range or inline keys are invalid.
Public-key metadata
An xpub key map stores the 78-byte BIP32 extended public key and a master fingerprint plus little-endian derivation path. Path length must match xpub depth.
Privacy and integrity
Descriptors, xpubs, fingerprints, names and birth heights expose wallet structure and scanning scope. Encrypt transports, authenticate files and never confuse the format with a seed or private-key backup.
How specialists test it
Developers test the proposal with made-up data on an isolated test network. They check normal cases and deliberately invalid cases. Different implementations should reach the same result before anyone relies on the proposal.
Frequently asked questions
What is the main point of BIP 391 Binary Output Descriptors?
BIP 391 Binary Output Descriptors: BIP 391 is Closed, Specification, and proposes BIP 393 as its replacement.
For BIP 391 Binary Output Descriptors, what should a beginner know about status?
BIP 391 is Closed, Specification, and proposes BIP 393 as its replacement.
For BIP 391 Binary Output Descriptors, what should a beginner know about container?
A Binary Output Descriptor consists of the fixed magic bytes 0x62 0x6f 0x64 0xff, one global map and zero or more ordered key maps, following BIP 174 key-pair framing.
For BIP 391 Binary Output Descriptors, what should a beginner know about descriptor record?
The required global descriptor entry carries an optional birth block and UTF-8 name in key data, plus a BIP 380 descriptor value whose keys are references rather than inline material.
Conclusion
BIP 391 is useful historical context for compact descriptor interchange, but its Closed status is decisive. Compatibility code should be strict and isolated, while new integrations evaluate the proposed replacement and preserve text-descriptor recovery.
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