BIP Overview
BIP¶
BIP: Bitcoin Improvement Proposal - a standardized document for proposing new features, improvements, or informational submissions to the Bitcoin protocol. The purpose of BIPs is to provide the Bitcoin community with a transparent, structured, and collaborative way to discuss and implement improvements and changes to the Bitcoin protocol. Improvement proposals are managed through a GitHub repository.
BIP Categories¶
BIPs are primarily divided into the following categories:
- Standards Track BIP: Improvements to the Bitcoin core protocol, consensus rules, and network protocol, such as definitions of Bitcoin standards like transaction formats and data structures.
- Informational BIP: Provides recommendations on Bitcoin development and design, not mandatory to implement, helping the community understand and discuss Bitcoin-related topics.
- Process BIP: Describes improvements to Bitcoin development and decision-making processes, such as the BIP process itself - standardization of non-technical improvements and operational procedures.
BIP Lifecycle¶
A BIP typically goes through the following stages from proposal to implementation: Draft Stage, Proposed Stage, and Final Stage.
Below is a lifecycle diagram:

All Active BIPs¶
BIP1: BIP Purpose and Guidelines
BIP2: BIP Process, Revised
BIP8: Version Bits with Lock-in by Height
BIP9: Version Bits with Timeout and Delay
BIP10: Multi-Sig Transaction Distribution
BIP11: M-of-N Standard Transactions
BIP12: OP_EVAL
BIP13: Address Format for Pay-to-Script-Hash
BIP14: Protocol Version and User Agent
BIP15: Aliases
BIP16: Pay to Script Hash
BIP17: OP_CHECKHASHVERIFY (CHV)
BIP18: hashScriptCheck
BIP19: M-of-N Standard Transactions (Low SigOp)
BIP20: URI Scheme
BIP21: URI Scheme
BIP22: getblocktemplate - Fundamentals
BIP23: getblocktemplate - Pooled Mining
BIP30: Duplicate Transactions
BIP31: Pong Message
BIP32: Hierarchical Deterministic Wallets
BIP33: Stratified Nodes
BIP34: Block v2, Height in Coinbase
BIP35: mempool Message
BIP36: Custom Services
BIP37: Connection Bloom Filtering
BIP38: Passphrase-Protected Private Key
BIP39: Mnemonic Code for Generating Deterministic Keys
BIP42: A Finite Monetary Supply for Bitcoin
BIP43: Purpose Field for Deterministic Wallets
BIP44: Multi-Account Hierarchy for Deterministic Wallets
BIP45: Structure for Deterministic P2SH Multisignature Wallets
BIP47: Reusable Payment Codes for Hierarchical Deterministic Wallets
BIP48: Multi-Script Hierarchy for Multi-Sig Wallets
BIP49: Derivation Scheme for P2WPKH-nested-in-P2SH Based Accounts
BIP50: March 2013 Chain Fork Post-Mortem
BIP52: Durable, Low Energy Bitcoin PoW
BIP60: Fixed Length "version" Message (Relay-Transactions Field)
BIP61: Reject P2P Message
BIP62: Dealing with Malleability
BIP64: getutxo Message
BIP65: OP_CHECKLOCKTIMEVERIFY
BIP66: Strict DER Signatures
BIP67: Deterministic Pay-to-Script-Hash Multi-Signature Addresses through Public Key Sorting
BIP68: Relative Lock-Time Using Consensus-Enforced Sequence Numbers
BIP69: Lexicographical Indexing of Transaction Inputs and Outputs
BIP70: Payment Protocol
BIP71: Payment Protocol MIME Types
BIP72: bitcoin: URI Extensions for Payment Protocol
BIP73: Use "Accept" Header for Response Type Negotiation with Payment Request URLs
BIP74: Allow Zero Value OP_RETURN in Payment Protocol
BIP75: Out of Band Address Exchange using Payment Protocol Encryption
BIP78: A Simple Payjoin Proposal
BIP79: Bustapay :: A Practical Coinjoin Protocol
BIP80: Hierarchy for Non-Colored Voting Pool Deterministic Multisig Wallets
BIP81: Hierarchy for Colored Voting Pool Deterministic Multisig Wallets
BIP83: Dynamic Hierarchical Deterministic Key Trees
BIP84: Derivation Scheme for P2WPKH Based Accounts
BIP85: Deterministic Entropy from BIP32 Keychains
BIP86: Key Derivation for Single Key P2TR Outputs
BIP87: Hierarchy for Deterministic Multisig Wallets
BIP88: Hierarchical Deterministic Path Templates
BIP90: Buried Deployments
BIP91: Reduced Threshold Segwit MASF
BIP93: codex32: Checksummed SSSS-aware BIP32 Seeds
BIP98: Fast Merkle Trees
BIP99: Motivation and Deployment of Consensus Rule Changes (Soft/Hard Forks)
BIP100: Dynamic Maximum Block Size by Miner Vote
BIP101: Increase Maximum Block Size
BIP102: Block Size Increase to 2MB
BIP103: Block Size Following Technological Growth
BIP104: 'Block75' - Like Difficulty for Max Block Size
BIP105: Consensus Based Block Size Retargeting Algorithm
BIP106: Dynamically Controlled Bitcoin Block Size Max Cap
BIP107: Dynamic Limits on the Block Size
BIP109: Two Million Byte Size Limit with Sigop and Sighash Limits
BIP111: NODE_BLOOM Service Bit
BIP112: CHECKSEQUENCEVERIFY
BIP113: Median Time-Past as Endpoint for Lock-Time Calculations
BIP114: Merkelized Abstract Syntax Tree
BIP115: Generic Anti-Replay Protection Using Script
BIP116: MERKLEBRANCHVERIFY
BIP117: Tail Call Execution Semantics
BIP118: SIGHASH_ANYPREVOUT for Taproot Scripts
BIP119: CHECKTEMPLATEVERIFY
BIP120: Proof of Payment
BIP121: Proof of Payment URI Scheme
BIP122: URI Scheme for Blockchain References/Exploration
BIP123: BIP Classification
BIP124: Hierarchical Deterministic Script Templates
BIP125: Opt-in Full Replace-by-Fee Signaling
BIP126: Best Practices for Heterogeneous Input Script Transactions
BIP127: Simple Proof-of-Reserves Transactions
BIP129: Bitcoin Secure Multisig Setup (BSMS)
BIP130: sendheaders Message
BIP131: "Coalescing Transaction" Specification (Wildcard Inputs)
BIP132: Committee-Based BIP Acceptance Process
BIP133: feefilter Message
BIP134: Flexible Transactions
BIP135: Generalized Version Bits Voting
BIP136: Bech32 Encoded Tx Position References
BIP137: Signing Messages with Private Keys
BIP140: Normalized TXID
BIP141: Segregated Witness (Consensus Layer)
BIP142: Address Format for Segregated Witness
BIP143: Transaction Signature Verification for Version 0 Witness Programs
BIP144: Segregated Witness (Peer Services)
BIP145: getblocktemplate Updates for Segregated Witness
BIP146: Dealing with Signature Encoding Malleability
BIP147: Dealing with Dummy Stack Element Malleability
BIP148: Mandatory Activation of Segwit Deployment
BIP149: Segregated Witness (Second Deployment)
BIP150: Peer Authentication
BIP151: Peer-to-Peer Communication Encryption
BIP152: Compact Block Relay
BIP154: Rate Limiting via Peer Specified Challenge
BIP155: addrv2 Message
BIP156: Dandelion - Privacy Enhancing Routing
BIP157: Client Side Block Filtering
BIP158: Compact Block Filters for Light Clients
BIP159: NODE_NETWORK_LIMITED Service Bit
BIP171: Currency/Exchange Rate Information API
BIP173: Base32 Address Format for Native v0-16 Witness Outputs
BIP174: Partially Signed Bitcoin Transaction Format
BIP175: Pay to Contract Protocol
BIP176: Bits Denomination
BIP178: Version Extended WIF
BIP179: Name for Payment Recipient Identifiers
BIP180: Block Size/Weight Fraud Proof
BIP197: Hashed Time-Locked Collateral Contract
BIP199: Hashed Time-Locked Contract Transactions
BIP300: Hashrate Escrow (Consensus Layer)
BIP301: Blind Merged Mining (Consensus Layer)
BIP310: Stratum Protocol Extensions
BIP320: General Purpose nVersion Bits
BIP322: Generic Signed Message Format
BIP324: Version 2 P2P Encrypted Transport Protocol
BIP325: Signet
BIP326: Anti-Fee-Sniping in Taproot Transactions
BIP327: MuSig2 for BIP340-Compatible Multi-Signatures
BIP329: Wallet Label Export Format
BIP330: Transaction Announcement Reconciliation
BIP331: Ancestor Package Relay
BIP337: Compressed Transactions
BIP338: Disable Transaction Relay Message
BIP339: WTXID-Based Transaction Relay
BIP340: Schnorr Signatures for secp256k1
BIP341: Taproot: SegWit Version 1 Spending Rules
BIP342: Validation of Taproot Scripts
BIP343: Mandatory Activation of Taproot Deployment
BIP345: OP_VAULT
BIP347: OP_CAT in Tapscript
BIP350: Bech32m Format for v1+ Witness Addresses
BIP351: Private Payments
BIP352: Silent Payments
BIP353: DNS Payment Instructions
BIP370: PSBT Version 2
BIP371: Taproot Fields for PSBT
BIP372: Pay-to-Contract Tweak Fields for PSBT
BIP380: Output Script Descriptors General Operation
BIP381: Non-Segwit Output Script Descriptors
BIP382: Segwit Output Script Descriptors
BIP383: Multisig Output Script Descriptors
BIP384: combo() Output Script Descriptors
BIP385: raw() and addr() Output Script Descriptors
BIP386: tr() Output Script Descriptors
BIP387: Tapscript Multisig Output Script Descriptors
BIP388: Wallet Policies for Descriptor Wallets
BIP389: Multipath Descriptor Key Expressions
BIP431: Topology Restrictions