Skip to content

Every BIP and what it does.

Bitcoin Improvement Proposals are how changes to Bitcoin, and standards for wallets, are written down. Here's what each of the 213 does, and whether it's in use.

There's evidence it's in active use, such as wallets or nodes supporting it, or a rule change that has switched on.

BIP-3Updated BIP ProcessSets out how BIPs are written, reviewed, numbered and published, replacing the older BIP 2 process.The BIP processBIP-9Version bits with timeout and delayLets miners signal support for several soft forks at once, each using its own bit in a block's version number.GuidanceBIP-11M-of-N Standard TransactionsMakes payments that need M of N signatures, such as 2 of 3, a standard type that nodes pass on and miners include.Wallets and appsBIP-13Address Format for pay-to-script-hashDefines the address format for pay-to-script-hash: the addresses that start with a 3.Wallets and appsBIP-14Protocol Version and User AgentSeparates the network's version number from any one program's version, and lets each node name its software.Between nodesBIP-16Pay to Script HashLets a sender pay to a short code standing for the receiver's spending rules, however complex those rules are.Rules · soft forkBIP-22getblocktemplate - FundamentalsLets mining software ask a node for a full draft of the next block, so it can build and adjust the block itself.Node softwareBIP-23getblocktemplate - Pooled MiningAdds extras to getblocktemplate for pooled mining, so miners in a pool can see and check the block they work on.Node softwareBIP-30Duplicate transactionsStops a block from including a payment with the same ID as an earlier payment whose coins are not all spent.Rules · soft forkBIP-31Pong messageLets a node send a ping with a random number and get it back in a pong, to check a connection still works.Between nodesBIP-32Hierarchical Deterministic WalletsLets a wallet grow a whole tree of keys from one starting value, so a single backup covers every key.Wallets and appsBIP-34Block v2, Height in CoinbaseMakes every block record its height, its place in the chain, inside the payment that rewards the miner.Rules · soft forkBIP-35mempool messageLets one node ask another for the list of unconfirmed payments it is holding.Between nodesBIP-37Connection Bloom filteringLets light wallets ask nodes to send only payments that might matter to them, instead of everything.Between nodesBIP-38Passphrase-protected private keyLets a private key be locked with a passphrase and printed as a code, for paper wallets and physical coins.Wallets and appsBIP-39Mnemonic code for generating deterministic keysLets wallets turn a backup of every key into a list of 12 to 24 ordinary words.Wallets and appsBIP-42A finite monetary supply for BitcoinMakes sure the new coins paid to miners stop for good, so the total number of bitcoin has a limit.Rules · soft forkBIP-43Purpose Field for Deterministic WalletsReserves the first step of a wallet's key tree for a number saying which layout the rest of the tree follows.Wallets and appsBIP-44Multi-Account Hierarchy for Deterministic WalletsSets out a standard layout for a wallet's keys, with separate branches for each coin, account and change.Wallets and appsBIP-47Reusable Payment Codes for Hierarchical Deterministic WalletsLets someone share one reusable payment code openly while each payment to them still goes to a new address.Wallets and appsBIP-48Multi-Script Hierarchy for Multi-Sig WalletsWrites down the key layout that wallets already use for shared, multi-signature accounts, so others can follow it.Wallets and appsBIP-49Derivation scheme for P2WPKH-nested-in-P2SH based accountsDefines where a wallet keeps keys for SegWit addresses wrapped in the older pay-to-script-hash format.Wallets and appsBIP-50March 2013 Chain Fork Post-MortemExplains how one large block split the blockchain in two in March 2013, why it happened, and how it was fixed.GuidanceBIP-61Reject P2P messageLets a node tell another node why it refused a block or payment it was sent.Between nodesBIP-65OP_CHECKLOCKTIMEVERIFYLets coins be locked so they cannot be spent until a chosen date or block height.Rules · soft forkBIP-66Strict DER signaturesRequires every signature to follow one strict, standard format, so all nodes agree on which signatures are valid.Rules · soft forkBIP-68Relative lock-time using consensus-enforced sequence numbersLets a payment be held back until a set number of blocks or amount of time after the coins it spends were confirmed.Rules · soft forkBIP-70Payment ProtocolLets shops send a wallet a signed payment request, so you see who you are paying instead of a bare address.Wallets and appsBIP-71Payment Protocol MIME typesNames the official file types for payment protocol messages sent over the web or by email.Wallets and appsBIP-72bitcoin: uri extensions for Payment ProtocolLets a bitcoin: payment link point to a web address where the wallet fetches a full payment request.Wallets and appsBIP-73Use "Accept" header for response type negotiation with Payment Request URLsLets a payment QR code hold a short web link, so the code is less dense and easier to scan.Wallets and appsBIP-75Out of Band Address Exchange using Payment Protocol EncryptionLets wallets swap fresh payment addresses privately, with encrypted payment requests and an optional sender identity.Wallets and appsBIP-78A Simple Payjoin ProposalLets the receiver add their own coins to a payment, so outsiders can no longer assume every input belongs to the payer.Wallets and appsBIP-84Derivation scheme for P2WPKH based accountsSets the key layout wallets use for native segwit addresses, so any compatible wallet can find them from one backup.Wallets and appsBIP-85Deterministic Entropy From BIP32 KeychainsLets one master backup create separate recovery words, keys and passwords for other wallets and apps.Wallets and appsBIP-86Key Derivation for Single Key P2TR OutputsSets the key layout wallets use for single-key Taproot addresses, so they can be found again from one backup.Wallets and appsBIP-89Chain Code DelegationLets a co-signer of a shared wallet help approve payments without seeing the wallet's balance or other activity.Wallets and appsBIP-90Buried DeploymentsReplaces old miner-vote checks for three past upgrades with the fixed block heights at which they took effect.GuidanceBIP-91Reduced threshold Segwit MASFSets out how miners could push segwit through with about 80% support, instead of the 95% it originally needed.Rules · soft forkBIP-94Testnet 4Sets up Testnet 4, a separate network for testing Bitcoin software, whose coins are meant to have no value.Wallets and appsBIP-111NODE_BLOOM service bitLets nodes say whether they offer the bloom filter service that some lightweight wallets use to find their payments.Between nodesBIP-112CHECKSEQUENCEVERIFYLets coins be locked so they can only be spent once they have waited a set time or number of blocks after arriving.Rules · soft forkBIP-113Median time-past as endpoint for lock-time calculationsUses the middle time of the last 11 blocks, not one block's own clock, to decide when time-locked payments can go through.Rules · soft forkBIP-123BIP ClassificationSorts BIPs into four layers, from the core rules everyone must follow to optional features in apps.The BIP processBIP-125Opt-in Full Replace-by-Fee SignalingLets a sender mark a payment as replaceable, so it can be swapped for one paying a higher fee if it is slow to confirm.Wallets and appsBIP-130sendheaders messageLets a node ask its peers to announce new blocks by sending the block's header, a short summary, instead of just its ID.Between nodesBIP-133feefilter messageLets a node tell its peers not to announce payments whose fee rate is below a level it sets.Between nodesBIP-137Signatures of Messages using Private KeysDefines a standard way to sign a message with a Bitcoin private key, so others can check it came from an address's owner.Wallets and appsBIP-141Segregated Witness (Consensus layer)Moves signatures into a separate part of each payment, so they can't change its ID, and lets blocks hold more.Rules · soft forkBIP-143Transaction Signature Verification for Version 0 Witness ProgramChanges how segwit signatures are checked, making checks faster and making signatures cover the amount being spent.Rules · soft forkBIP-144Segregated Witness (Peer Services)Lets nodes share segwit payments and blocks, including their signature data, without confusing older nodes.Between nodesBIP-145getblocktemplate Updates for Segregated WitnessUpdates the request miners use to get a block template so that it handles segwit payments.Node softwareBIP-147Dealing with dummy stack element malleabilityRequires an extra, unused value in multi-signature checks to be empty, so it can't be swapped to change a payment.Rules · soft forkBIP-148Mandatory activation of segwit deploymentMakes nodes reject blocks that don't signal support for segwit during a set period in 2017, to push segwit to switch on.Rules · soft forkBIP-152Compact Block RelayLets nodes send new blocks in a compact form that leaves out payments the receiving node has already seen.Between nodesBIP-155addrv2 messageLets nodes share longer network addresses, such as newer Tor and I2P addresses, with each other.Between nodesBIP-157Client Side Block FilteringLets light wallets check each block for their payments using small filters from full nodes, keeping more of their activity private.Between nodesBIP-158Compact Block Filters for Light ClientsDefines the small, compressed block filters that light wallets use to spot blocks that may contain their payments.Between nodesBIP-159NODE_NETWORK_LIMITED service bitLets nodes that keep only recent blocks say so, promising to serve at least the last 288 blocks, about two days.Between nodesBIP-173Base32 address format for native v0-16 witness outputsDefines Bech32, the address format starting 'bc1' used for SegWit payments, designed to catch typing mistakes.Wallets and appsBIP-174Partially Signed Bitcoin Transaction FormatDefines PSBT, a standard format for passing an unsigned payment between wallets and devices so each can add its signature.Wallets and appsBIP-324Version 2 P2P Encrypted Transport ProtocolLets nodes encrypt the traffic between them, making it harder for eavesdroppers to tell where a payment came from.Between nodesBIP-327MuSig2 for BIP340-compatible Multi-SignaturesLets several people combine their keys into one and sign together, producing what looks like a single ordinary signature.GuidanceBIP-339WTXID-based transaction relayLets nodes announce and request payments by an ID that covers the whole payment, including its signature data.Between nodesBIP-340Schnorr Signatures for secp256k1Defines Schnorr signatures for Bitcoin, a 64-byte signature type with stronger security proofs that lets several signers act as one.GuidanceBIP-341Taproot: SegWit version 1 spending rulesAdds Taproot, a new kind of output that can be spent with one signature or with other conditions that stay hidden unless used.Rules · soft forkBIP-342Validation of Taproot ScriptsSets the rules for the scripts inside Taproot coins, the small programs that decide who can spend them.Rules · soft forkBIP-350Bech32m format for v1+ witness addressesDefines Bech32m, a fixed version of the error check used in newer bc1 addresses, including Taproot ones.Wallets and appsBIP-370PSBT Version 2Updates the PSBT file format for unsigned payments so inputs and outputs can still be added after the file is first made.Wallets and appsBIP-371Taproot Fields for PSBTAdds the extra details signing devices need to sign Taproot payments using the shared PSBT file format.Wallets and appsBIP-380Output Script Descriptors General OperationDefines output script descriptors, a short text format that says exactly which addresses a wallet uses.Wallets and appsBIP-381Non-Segwit Output Script DescriptorsDefines how descriptors write the three original standard types: pay to public key, pay to public key hash, and pay to script hash.Wallets and appsBIP-382Segwit Output Script DescriptorsDefines how descriptors write the two segwit address types, one for a single key and one for a script.Wallets and appsBIP-383Multisig Output Script DescriptorsDefines how descriptors describe multisig, where a set number of several keys, such as 2 of 3, must sign to spend.Wallets and appsBIP-384combo() Output Script DescriptorsDefines combo(), a descriptor that takes one key and covers the standard address types older wallets made from it.Wallets and appsBIP-385raw() and addr() Output Script DescriptorsDefines raw() and addr(), which let a descriptor wrap any script or any address exactly as it is.Wallets and appsBIP-386tr() Output Script DescriptorsDefines tr(), the descriptor for Taproot outputs, covering the main key and an optional tree of other scripts.Wallets and appsBIP-387Tapscript Multisig Output Script DescriptorsDefines multi_a() and sortedmulti_a(), descriptors for multisig spending rules inside Taproot scripts.Wallets and apps