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
Its authors say it's finished and ready to adopt. It isn't yet shown to be in wide use.
BIP-8Version bits with lock-in by heightDefines a way to switch on soft forks by counting blocks, with an option to make sure the upgrade locks in by a set point.GuidanceBIP-18hashScriptCheckDescribes another way to let a sender pay to a short fingerprint of the receiver's spending rules.Rules · soft forkBIP-45Structure for Deterministic P2SH Multisignature WalletsSets out how a shared wallet that needs several signatures makes its addresses, so different apps can work together.Wallets and appsBIP-54Consensus CleanupDefines one soft fork that fixes several long-standing weaknesses in Bitcoin's rules.Rules · soft forkBIP-67Deterministic Pay-to-script-hash multi-signature addresses through public key sortingDefines how to sort the keys behind a shared, multi-key address, so the same keys always give the same address.Wallets and appsBIP-69Lexicographical Indexing of Transaction Inputs and OutputsSets a standard order for a payment's inputs and outputs, so the order no longer gives away private details.Wallets and appsBIP-87Hierarchy for Deterministic Multisig WalletsSets a standard key layout for shared wallets that need several keys to spend, whatever the address type.Wallets and appsBIP-88Hierarchical Deterministic Path TemplatesDefines a short way to write down which key-tree paths a wallet or signing device will accept.Wallets and appsBIP-127Simple Proof-of-Reserves TransactionsDefines a standard way for a company holding customers' bitcoin to prove that it controls a given amount.Wallets and appsBIP-129Bitcoin Secure Multisig Setup (BSMS)Defines a safe, step-by-step way to set up a multisig wallet, one that needs several keys to spend, across different devices.Wallets and appsBIP-176Bits DenominationDefines 'bits' as a name for 100 satoshis, a millionth of a bitcoin, to make small amounts easier to read.GuidanceBIP-179Name for payment recipient identifiersSuggests calling Bitcoin addresses 'invoices' or 'invoice addresses', to stress that each should be used only once.GuidanceBIP-321URI SchemeDefines 'bitcoin:' payment links and QR codes that fill in the address, amount and a note in a wallet.Wallets and appsBIP-322Generic Signed Message FormatDefines a standard way to sign a message with any type of Bitcoin address, showing the signer could spend coins sent there.Wallets and appsBIP-325SignetDefines signet, a kind of test network where blocks need a signature as well as mining, so testing is steadier.Wallets and appsBIP-328Derivation Scheme for MuSig2 Aggregate KeysDefines how a group sharing a MuSig2 key can make a fresh shared address for every payment from one extended public key.Wallets and appsBIP-347OP_CAT in TapscriptDefines OP_CAT, a Taproot script instruction that joins two pieces of data into one, to be added by soft fork.Rules · soft forkBIP-352Silent PaymentsLets someone share one reusable address while each payment to it lands at a new, unlinkable address on the blockchain.Wallets and appsBIP-353DNS Payment InstructionsLets people use an email-style name such as ₿alice@example.com that wallets look up to find where to send a payment.Wallets and appsBIP-373MuSig2 PSBT FieldsAdds fields to PSBT files so several people can jointly produce one MuSig2 signature for a shared key.Wallets and appsBIP-388Wallet Policies for Descriptor WalletsDefines wallet policies, a compact form of descriptors that hardware signing devices can store and show to users to check.Wallets and appsBIP-434Peer Feature NegotiationDefines a 'feature' message that nodes send when first connecting, to tell each other which new optional features they support.Between nodes
A proposal still being worked on. Being published doesn't mean it will happen.
BIP-46Address Scheme for Timelocked Fidelity BondsWould set a standard way for wallets to make and find coins locked until a set date, used as fidelity bonds.Wallets and appsBIP-53Disallow 64-byte transactionsWould make payments exactly 64 bytes long invalid, closing loopholes that can fool light wallets and nodes.Rules · soft forkBIP-77Async PayjoinWould let a payer and receiver build a joint Payjoin payment without both needing to be online at the same time.Wallets and appsBIP-93codex32: Checksummed SSSS-aware BIP32 seedsWould let people back up a wallet's master secret as a checked code, optionally split into shares, even by hand with pen and paper.Wallets and appsBIP-95Testnet 5Would set up Testnet 5, a testing network to replace Testnet 4, with no low-difficulty shortcut for miners.Wallets and appsBIP-98Fast Merkle TreesWould define a faster, safer Merkle tree, a way to prove an item is in a list without revealing the whole list.Rules · soft forkBIP-116MERKLEBRANCHVERIFYWould let a script check that one or more items come from a list fixed in advance, without revealing the whole list.Rules · soft forkBIP-117Tail Call Execution SemanticsWould let a script reveal and run only the spending rule actually used, out of a large set fixed in advance.Rules · soft forkBIP-118SIGHASH_ANYPREVOUT for Taproot ScriptsWould add a type of signature that isn't tied to one exact coin, so one pre-signed payment can respond to many possible ones.Rules · soft forkBIP-119CHECKTEMPLATEVERIFYWould let coins be locked so they can only be spent by a payment that matches a template fixed in advance.Rules · soft forkBIP-122URI scheme for Blockchain references / explorationWould add blockchain: links that open a block, payment or address in whichever explorer or app the user prefers.Wallets and appsBIP-126Best Practices for Heterogeneous Input Script TransactionsWould set common patterns for payments that combine coins from several addresses, so they reveal less about the sender.GuidanceBIP-128Timelock-Recovery Storage FormatWould set a standard file format for recovery plans: pre-signed payments that move coins to a backup wallet after a delay.Wallets and appsBIP-136Bech32 Encoded Tx Position ReferencesWould give each confirmed payment a short reference based on where it sits in the blockchain, easier to read out than its ID.Wallets and appsBIP-138Compact Encryption Scheme for Non-seed Wallet DataWould encrypt a wallet's setup details so backups can be stored anywhere, and opened only by the wallet's own keyholders.Wallets and appsBIP-172Define Bitcoin Subunits as SatoshisWould make 'satoshi' the standard name for the smallest unit of bitcoin, a hundred-millionth of a coin, with 'sats' as the short form.Wallets and appsBIP-177Redefine Bitcoin's Base UnitWould make 'one bitcoin' mean the smallest unit, so amounts become whole numbers and today's 1 BTC equals 100 million bitcoins.GuidanceBIP-178Version Extended WIFWould add a tag to exported private keys saying which type of address they were used with.Wallets and appsBIP-197Hashed Time-Locked Collateral ContractWould define scripts that lock bitcoin as collateral for a loan made on another blockchain, returned when the loan is repaid.Wallets and appsBIP-300Hashrate Escrows (Consensus layer)Would let coins move to separate side networks and back, with miners approving each withdrawal slowly over months.Rules · soft forkBIP-301Blind Merged Mining (Consensus layer)Would let Bitcoin miners earn fees from other blockchains without running their software, by selling the right to make each block.Rules · soft forkBIP-310Stratum protocol extensionsWould let mining machines and mining pools agree which extra features they support, starting with 'version rolling'.Wallets and appsBIP-320nVersion bits for general purpose useWould set aside 16 bits of each block header for miners to use freely, rather than for signalling upgrades.GuidanceBIP-32324 nVersion bits for general purpose useWould set aside 24 bits of each block header as spare room for mining hardware, more than BIP 320's 16.GuidanceBIP-326Anti-fee-sniping in taproot transactionsWould have wallets vary a timing setting in Taproot payments so ordinary payments and contract closures look alike.Wallets and appsBIP-329Wallet Labels Export FormatWould set a standard file format for moving the labels people add in one wallet over to another.Wallets and appsBIP-330Transaction announcements reconciliationWould let pairs of nodes compare which payments they've heard about, instead of announcing every one to each other.Between nodesBIP-331Ancestor Package RelayWould let nodes pass on a payment together with the unconfirmed payments it depends on, so they're judged as a group.Between nodesBIP-332Stale Tip RelayWould let nodes tell each other about recent valid blocks that lost the race to join the main chain.Between nodesBIP-337Compressed TransactionsWould define a compact encoding that can shrink a Bitcoin payment to less than half its normal size.Node softwareBIP-346OP_TXHASHWould add a script instruction that lets coins check details of the payment spending them, enabling new kinds of spending rules.Rules · soft forkBIP-348CHECKSIGFROMSTACKWould add a script instruction that checks a signature on any message, not just on the payment being made.Rules · soft forkBIP-349OP_INTERNALKEYWould add a script instruction that fetches a Taproot coin's main key, saving space in some scripts.Rules · soft forkBIP-360Pay-to-Merkle-Root (P2MR)Would add a new output type, P2MR, that works like Taproot without its key-only way to spend, to resist some quantum attacks.Rules · soft forkBIP-361Post Quantum Migration and Legacy Signature SunsetWould phase out today's signatures once quantum-safe addresses exist: first blocking payments to vulnerable addresses, then requiring a rescue proof.Rules · soft forkBIP-372Pay-to-contract tweak fields for PSBTWould add fields to PSBT files so signers can spend coins whose keys were adjusted to commit to an extra message.Wallets and appsBIP-374Discrete Log Equality ProofsWould standardise a short proof that a shared secret was worked out with a particular private key, without revealing that key.Wallets and appsBIP-375Sending Silent Payments with PSBTsWould let wallets and signing devices build payments to silent payment addresses using PSBT files.Wallets and appsBIP-376Spending Silent Payment outputs with PSBTsWould add a PSBT field holding the extra key detail a signer needs to spend coins received through silent payments.Wallets and appsBIP-379MiniscriptWould define Miniscript, a structured way to write Bitcoin's spending rules so software can check, combine and sign for them.Wallets and appsBIP-389Multipath Descriptor Key ExpressionsWould let one descriptor cover both a wallet's receiving addresses and its change addresses.Wallets and appsBIP-390musig() Descriptor Key ExpressionWould let descriptors include a MuSig2 combined key, so wallets can more easily use keys shared by several people.Wallets and appsBIP-392Silent Payment Output Script DescriptorsWould add sp(), a descriptor for silent payment wallets, so they can be backed up and restored like other wallets.Wallets and appsBIP-393Output Script Descriptor AnnotationsWould let descriptors carry extra notes, such as where to start scanning the blockchain, to help restore a wallet.Wallets and appsBIP-431Topology Restrictions for PinningWould set out opt-in, stricter relay rules for unconfirmed payments, making it harder for others to block a fee bump.Wallets and appsBIP-433Pay to Anchor (P2A)Would define Pay to Anchor, a tiny output anyone can spend, used as a hook for adding fees to a payment later.Wallets and appsBIP-440Varops Budget For Script Runtime ConstraintWould give script operations a cost budget based on how much data they handle, to keep scripts quick to check.Rules · soft forkBIP-441Restoration of disabled script (Tapleaf 0xC2)Would add a new Taproot script version that brings back script commands switched off in Bitcoin's early days, with larger limits.Rules · soft forkBIP-442OP_PAIRCOMMITWould add a script command that combines two pieces of data into one fingerprint, so scripts can commit to several items at once.Rules · soft forkBIP-443OP_CHECKCONTRACTVERIFYWould add a script command that lets coins carry a piece of data and set rules for the outputs they are spent to.Rules · soft forkBIP-446OP_TEMPLATEHASHWould add a script command that commits coins to the exact payment that must later spend them.Rules · soft forkBIP-448Taproot-native (Re)bindable TransactionsWould switch on three script commands together, OP_TEMPLATEHASH, OP_CHECKSIGFROMSTACK and OP_INTERNALKEY, to improve layer-two systems.Rules · soft forkBIP-449OP_TWEAKADD - x-only key tweak additionWould add a script command that adjusts a public key by a given number, the same way Taproot adjusts keys.Rules · soft forkBIP-450Formosa—Seed encoding by themed mnemonic storiesWould turn a wallet backup into short themed sentences instead of unrelated words, to make recovery words easier to remember.Wallets and appsBIP-451Dust UTXO Disposal ProtocolWould set a standard way for wallets to get rid of tiny unwanted coins by giving their whole value to miners as a fee.Wallets and appsBIP-461Deterministic ECDSA SignaturesWould standardise a single way to make ECDSA signatures, so a given key and message always give the same signature.Wallets and apps
Of historical interest only: not being worked on, promoted or used.
BIP-1BIP Purpose and GuidelinesSet out what a BIP is and the first process for writing, discussing and accepting one.The BIP processBIP-2BIP process, revisedReplaced BIP 1 with a clearer, more detailed process for writing, reviewing and accepting BIPs.The BIP processBIP-10Multi-Sig Transaction DistributionProposed a common format for passing an unsigned payment between people so each can add their signature.Wallets and appsBIP-12OP_EVALProposed a new script command, OP_EVAL, so the person receiving coins could choose the rules for spending them.Rules · soft forkBIP-15AliasesCompared ways to let people pay a short, memorable name instead of a long address.Wallets and appsBIP-17OP_CHECKHASHVERIFY (CHV)Proposed a new script command, CHECKHASHVERIFY, to let the person receiving coins set the rules for spending them.Rules · soft forkBIP-19M-of-N Standard Transactions (Low SigOp)Proposed standard payments needing several signatures, built from simple signature checks so more fit in each block.Wallets and appsBIP-20URI SchemeProposed bitcoin: links that open a wallet with a payment ready to approve, from a web page or a QR code.Wallets and appsBIP-21URI SchemeSet out the bitcoin: link format that opens a wallet with an address and amount filled in, from a click or a QR scan.Wallets and appsBIP-33Stratized NodesProposed special nodes that would check the blockchain and answer address lookups for lighter wallets.Between nodesBIP-36Custom ServicesProposed a way for nodes to announce custom add-on services when they connect, without crowding a small shared field.Between nodesBIP-52Durable, Low Energy Bitcoin PoWProposed changing Bitcoin's mining puzzle to one best solved by light-based chips that use much less energy.Rules · hard forkBIP-60Fixed Length "version" Message (Relay-Transactions Field)Proposed always including the relay flag in the greeting message nodes exchange, rather than leaving it optional.Between nodesBIP-62Dealing with malleabilityProposed rules to stop others from altering a payment while it travels across the network, before it is confirmed.Rules · soft forkBIP-64getutxo messageProposed a message letting light wallets ask a node whether particular coins are still unspent.Between nodesBIP-74Allow zero value OP_RETURN in Payment ProtocolProposed letting payment requests include zero-value data outputs, so no bitcoin is lost when attaching data.Wallets and appsBIP-79Bustapay :: a practical coinjoin protocolProposed Bustapay, a way for payer and receiver to sign one payment together to defeat common tracking methods.Wallets and appsBIP-80Hierarchy for Non-Colored Voting Pool Deterministic Multisig WalletsProposed a key layout for the shared, multi-key wallets used by 'voting pools', whose members hold deposits together.GuidanceBIP-81Hierarchy for Colored Voting Pool Deterministic Multisig WalletsProposed a key layout for 'voting pool' shared wallets that handle coloured coins, giving each colour its own keys.GuidanceBIP-83Dynamic Hierarchical Deterministic Key TreesProposed a flexible way for wallets to add new levels to their tree of keys whenever they need them.Wallets and appsBIP-99Motivation and deployment of consensus rule changes ([soft/hard]forks)Set out the different kinds of change to Bitcoin's rules and proposed how each kind should be rolled out.GuidanceBIP-100Dynamic maximum block size by miner voteProposed letting miners vote to raise or lower the maximum block size in small steps, replacing the fixed 1 MB limit.Rules · hard forkBIP-101Increase maximum block sizeProposed raising the maximum block size to 8 MB, then doubling it every two years until 2036.Rules · hard forkBIP-102Block size increase to 2MBProposed a one-time rise in the maximum block size from 1 MB to 2 MB.Rules · hard forkBIP-103Block size following technological growthProposed growing the maximum block size slowly, by about 17.7% a year, to keep pace with improving technology.Rules · hard forkBIP-104'Block75' - Max block size like difficultyProposed adjusting the maximum block size automatically to keep blocks about 75% full on average.Rules · hard forkBIP-105Consensus based block size retargeting algorithmProposed letting miners vote on the block size, with a harder mining target for any miner voting to raise it.Rules · hard forkBIP-106Dynamically Controlled Bitcoin Block Size Max CapProposed letting the maximum block size grow or shrink each difficulty period, based on how full recent blocks were.Rules · hard forkBIP-107Dynamic limit on the block sizeProposed raising the maximum block size in steps to 6 MB, then letting it grow further with sustained demand.Rules · hard forkBIP-109Two million byte size limit with sigop and sighash limitsProposed raising the maximum block size from 1 MB to 2 MB, with new limits on signature checks and hashing.Rules · hard forkBIP-110Reduced Data Temporary SoftforkProposed a temporary, one-year rule change limiting how much non-payment data a Bitcoin payment could carry.Rules · soft forkBIP-114Merkelized Abstract Syntax TreeProposed a way to lock coins under many alternative spending rules while revealing only the one actually used.Rules · soft forkBIP-115Generic anti-replay protection using ScriptProposed a script check that ties a payment to one particular chain, so it can't be copied onto another chain after a split.Rules · soft forkBIP-120Proof of PaymentProposed a way for a wallet to prove it made a past payment, so the payment could act as a ticket or key.Wallets and appsBIP-121Proof of Payment URI schemeProposed a link format, similar to bitcoin: payment links, for asking a wallet to produce a Proof of Payment.Wallets and appsBIP-124Hierarchical Deterministic Script TemplatesProposed a shared template format so different wallets build the same scripts from the same keys.Wallets and appsBIP-131"Coalescing Transaction" Specification (wildcard inputs)Proposed a new kind of payment that would spend every coin held at one address with a single signature.Rules · hard forkBIP-132Committee-based BIP Acceptance ProcessProposed that committees for developers, miners, merchants and users vote on whether each BIP is accepted.The BIP processBIP-134Flexible TransactionsProposed a new, more flexible payment format built from labelled fields, to make future upgrades easier.Rules · hard forkBIP-135Generalized version bits votingProposed a more flexible way for miners to signal support for upgrades, with separate thresholds for each one.GuidanceBIP-140Normalized TXIDProposed a version of the payment ID that ignores signatures, so nobody could change a payment's ID by altering them.Rules · soft forkBIP-142Address Format for Segregated WitnessProposed an address format for segwit payments, written in the same style as older Bitcoin addresses.Wallets and appsBIP-146Dealing with signature encoding malleabilityProposed two rules to stop anyone relaying a payment from changing the form of its signatures.Rules · soft forkBIP-149Segregated Witness (second deployment)Proposed a second launch of segwit, backed by users' nodes, that would lock in by a deadline without needing most miners.Rules · soft forkBIP-150Peer AuthenticationProposed a way for nodes to prove who they are to trusted peers, to spot impostors and unlock extra services.Between nodesBIP-151Peer-to-Peer Communication EncryptionProposed encrypting the traffic between Bitcoin nodes so outsiders can't easily read it or tamper with it unseen.Between nodesBIP-154Rate Limiting via peer specified challengesProposed making peers solve a small proof-of-work puzzle to earn some connection slots on a node.Between nodesBIP-156Dandelion - Privacy Enhancing RoutingProposed hiding where a payment came from by passing it along a random chain of nodes before spreading it widely.Between nodesBIP-171Currency/exchange rate information APIProposed a standard way for apps to ask a server for currency exchange rates against bitcoin.Wallets and appsBIP-175Pay to Contract ProtocolProposed a way to create a payment address from the terms of a contract, so both sides can prove who was paid and what for.Wallets and appsBIP-180Block size/weight fraud proofProposed a short proof that light wallets could check to spot a block that breaks the size limit.Between nodesBIP-199Hashed Time-Locked Contract transactionsSet out a script that pays one person if they reveal a secret, or refunds the sender after a deadline.Wallets and appsBIP-338Disable transaction relay messageProposed a message letting a node tell a peer that their connection will only ever carry blocks, never payments.Between nodesBIP-343Mandatory activation of taproot deploymentProposed a way to switch on Taproot that would, if needed, have forced miners to signal support before a deadline.Rules · soft forkBIP-345OP_VAULTProposed vaults: coins that must wait through a set delay before being spent, during which a backup key can pull them to safety.Rules · soft forkBIP-351Private PaymentsProposed reusable 'payment codes' that let a sender and receiver work out private addresses only the two of them can calculate.Wallets and appsBIP-391Binary Output DescriptorsProposed a compact binary file format for passing descriptors, with names and other details, between wallets.Wallets and apps