BIPs — Merged
Bitcoin Improvement Proposals accepted into the bitcoin/bips repository.
BIP Purpose and Guidelines
BIP: 1 Title: BIP Purpose and Guidelines Authors: Amir Taaki <genjix@riseup.net>
No reviewsBIP process, revised
BIP: 2 Title: BIP process, revised Authors: Luke Dashjr <luke+bip@dashjr.org>
No reviews<BIP title (≤ 50 characters)>
This _Bitcoin Improvement Proposal (BIP)_ provides information about the preparation of BIPs and policies relating to the publication of BIPs. It replaces [BIP 2](bip-0002.mediawiki) with a streamlined process, and may be amended to address the evolving needs of the BIP process.
No reviewsVersion bits with lock-in by height
BIP: 8 Title: Version bits with lock-in by height Authors: Shaolin Fry <shaolinfry@protonmail.ch>
No reviewsVersion bits with timeout and delay
BIP: 9 Title: Version bits with timeout and delay Authors: Pieter Wuille <pieter.wuille@gmail.com>
No reviewsMulti-Sig Transaction Distribution
BIP: 10 Layer: Applications Title: Multi-Sig Transaction Distribution
No reviewsM-of-N Standard Transactions
BIP: 11 Layer: Applications Title: M-of-N Standard Transactions
No reviewsOP_EVAL
BIP: 12 Layer: Consensus (soft fork) Title: OP_EVAL
No reviewsAddress Format for pay-to-script-hash
BIP: 13 Layer: Applications Title: Address Format for pay-to-script-hash
No reviewsProtocol Version and User Agent
BIP: 14 Layer: Peer Services Title: Protocol Version and User Agent
No reviewsAliases
BIP: 15 Layer: Applications Title: Aliases
No reviewsPay to Script Hash
BIP: 16 Layer: Consensus (soft fork) Title: Pay to Script Hash
No reviewsOP_CHECKHASHVERIFY (CHV)
BIP: 17 Layer: Consensus (soft fork) Title: OP_CHECKHASHVERIFY (CHV)
No reviewshashScriptCheck
BIP: 18 Layer: Consensus (soft fork) Title: hashScriptCheck
No reviewsM-of-N Standard Transactions (Low SigOp)
BIP: 19 Layer: Applications Title: M-of-N Standard Transactions (Low SigOp)
No reviewsURI Scheme
BIP: 20 Layer: Applications Title: URI Scheme
No reviewsURI Scheme
BIP: 21 Layer: Applications Title: URI Scheme
No reviewsgetblocktemplate - Fundamentals
BIP: 22 Layer: API/RPC Title: getblocktemplate - Fundamentals
No reviewsgetblocktemplate - Pooled Mining
BIP: 23 Layer: API/RPC Title: getblocktemplate - Pooled Mining
No reviewsDuplicate transactions
BIP: 30 Layer: Consensus (soft fork) Title: Duplicate transactions
No reviewsPong message
BIP: 31 Layer: Peer Services Title: Pong message
No reviewsHierarchical Deterministic Wallets
RECENT CHANGES: * (16 Apr 2013) Added private derivation for i ≥ 0x80000000 (less risk of parent private key leakage) * (30 Apr 2013) Switched from multiplication by I<sub>L</sub> to addition of I<sub>L</sub> (faster, easier implementation)
No reviewsStratized Nodes
BIP: 33 Layer: Peer Services Title: Stratized Nodes
No reviewsBlock v2, Height in Coinbase
BIP: 34 Layer: Consensus (soft fork) Title: Block v2, Height in Coinbase
No reviewsmempool message
BIP: 35 Layer: Peer Services Title: mempool message
No reviewsCustom Services
BIP: 36 Layer: Peer Services Title: Custom Services
No reviewsConnection Bloom filtering
BIP: 37 Layer: Peer Services Title: Connection Bloom filtering
No reviewsPassphrase-protected private key
BIP: 38 Layer: Applications Title: Passphrase-protected private key
No reviewsMnemonic code for generating deterministic keys
BIP: 39 Layer: Applications Title: Mnemonic code for generating deterministic keys
No reviewsA finite monetary supply for Bitcoin
BIP: 42 Layer: Consensus (soft fork) Title: A finite monetary supply for Bitcoin
No reviewsPurpose Field for Deterministic Wallets
BIP: 43 Layer: Applications Title: Purpose Field for Deterministic Wallets
No reviewsMulti-Account Hierarchy for Deterministic Wallets
BIP: 44 Layer: Applications Title: Multi-Account Hierarchy for Deterministic Wallets
No reviewsStructure for Deterministic P2SH Multisignature Wallets
BIP: 45 Layer: Applications Title: Structure for Deterministic P2SH Multisignature Wallets
No reviewsAddress Scheme for Timelocked Fidelity Bonds
BIP: 46 Layer: Applications Title: Address Scheme for Timelocked Fidelity Bonds
No reviewsReusable Payment Codes for Hierarchical Deterministic Wallets
RECENT CHANGES: * (15 Feb 2021) Finalize specification * (28 Sep 2017) Adjust text to match test vectors
No reviewsMulti-Script Hierarchy for Multi-Sig Wallets
BIP: 48 Layer: Applications Title: Multi-Script Hierarchy for Multi-Sig Wallets
No reviewsDerivation scheme for P2WPKH-nested-in-P2SH based accounts
BIP: 49 Layer: Applications Title: Derivation scheme for P2WPKH-nested-in-P2SH based accounts
No reviewsMarch 2013 Chain Fork Post-Mortem
BIP: 50 Title: March 2013 Chain Fork Post-Mortem Authors: Gavin Andresen <gavinandresen@gmail.com>
No reviewsDurable, Low Energy Bitcoin PoW
BIP: 52 Layer: Consensus (hard fork) Title: Durable, Low Energy Bitcoin PoW
No reviewsDisallow 64-byte transactions
BIP: 53 Layer: Consensus (soft fork) Title: Disallow 64-byte transactions
No reviewsConsensus Cleanup
This document proposes new consensus rules in order to fix the timewarp attack, reduce the worst case block validation time, prevent Merkle tree weaknesses, and avoid duplicate transactions without [bip-0030][BIP30] validation.
No reviewsFixed Length "version" Message (Relay-Transactions Field)
BIP: 60 Layer: Peer Services Title: Fixed Length "version" Message (Relay-Transactions Field)
No reviewsReject P2P message
BIP: 61 Layer: Peer Services Title: Reject P2P message
No reviewsDealing with malleability
'''NOTICE: This document is a work in progress and is not complete, implemented, or otherwise suitable for deployment.''' BIP: 62 Layer: Consensus (soft fork)
No reviewsgetutxo message
BIP: 64 Layer: Peer Services Title: getutxo message
No reviewsOP_CHECKLOCKTIMEVERIFY
BIP: 65 Layer: Consensus (soft fork) Title: OP_CHECKLOCKTIMEVERIFY
No reviewsStrict DER signatures
BIP: 66 Layer: Consensus (soft fork) Title: Strict DER signatures
No reviewsDeterministic Pay-to-script-hash multi-signature addresses through public key sorting
BIP: 67 Layer: Applications Title: Deterministic Pay-to-script-hash multi-signature addresses through public key sorting
No reviewsRelative lock-time using consensus-enforced sequence numbers
BIP: 68 Layer: Consensus (soft fork) Title: Relative lock-time using consensus-enforced sequence numbers
No reviewsLexicographical Indexing of Transaction Inputs and Outputs
BIP: 69 Layer: Applications Title: Lexicographical Indexing of Transaction Inputs and Outputs
No reviewsPayment Protocol
BIP: 70 Layer: Applications Title: Payment Protocol
No reviewsPayment Protocol MIME types
BIP: 71 Layer: Applications Title: Payment Protocol MIME types
No reviewsbitcoin: uri extensions for Payment Protocol
BIP: 72 Layer: Applications Title: bitcoin: uri extensions for Payment Protocol
No reviewsUse "Accept" header for response type negotiation with Payment Request URLs
BIP: 73 Layer: Applications Title: Use "Accept" header for response type negotiation with Payment Request URLs
No reviewsAllow zero value OP_RETURN in Payment Protocol
BIP: 74 Layer: Applications Title: Allow zero value OP_RETURN in Payment Protocol
No reviewsOut of Band Address Exchange using Payment Protocol Encryption
BIP: 75 Layer: Applications Title: Out of Band Address Exchange using Payment Protocol Encryption
No reviewsAsync Payjoin
Payjoin lets Bitcoin senders and receivers interact to make batched transactions. This document proposes a second, backwards-compatible, asynchronous version of the Payjoin protocol ("Version 2") relative to and described in [BIP 78](bip-0078.mediawiki) ("Version 1"). An untrusted third-party "directory server" replaces the requirement for a receiver to host a secure public endpoint for interactions. HTTP clients access the directory server using an asynchronous protocol and authenticated, encr
No reviewsA Simple Payjoin Proposal
This document proposes a protocol for two parties to negotiate a coinjoin transaction during a payment between them.
No reviewsBustapay :: a practical coinjoin protocol
BIP: 79 Layer: Applications Title: Bustapay :: a practical coinjoin protocol
No reviewsHierarchy for Non-Colored Voting Pool Deterministic Multisig Wallets
BIP: 80 Title: Hierarchy for Non-Colored Voting Pool Deterministic Multisig Wallets Authors: Justus Ranvier <justus@opentransactions.org>
No reviewsHierarchy for Colored Voting Pool Deterministic Multisig Wallets
BIP: 81 Title: Hierarchy for Colored Voting Pool Deterministic Multisig Wallets Authors: Justus Ranvier <justus@opentransactions.org>
No reviewsDynamic Hierarchical Deterministic Key Trees
BIP: 83 Layer: Applications Title: Dynamic Hierarchical Deterministic Key Trees
No reviewsDerivation scheme for P2WPKH based accounts
BIP: 84 Layer: Applications Title: Derivation scheme for P2WPKH based accounts
No reviewsDeterministic Entropy From BIP32 Keychains
BIP: 85 Layer: Applications Title: Deterministic Entropy From BIP32 Keychains
No reviewsKey Derivation for Single Key P2TR Outputs
BIP: 86 Layer: Applications Title: Key Derivation for Single Key P2TR Outputs
No reviewsHierarchy for Deterministic Multisig Wallets
BIP: 87 Layer: Applications Title: Hierarchy for Deterministic Multisig Wallets
No reviewsHierarchical Deterministic Path Templates
BIP: 88 Layer: Applications Title: Hierarchical Deterministic Path Templates
No reviewsChain Code Delegation
BIP: 89 Layer: Applications Title: Chain Code Delegation
No reviewsBuried Deployments
BIP: 90 Title: Buried Deployments Authors: Suhas Daftuar <sdaftuar@chaincode.com>
No reviewsReduced threshold Segwit MASF
BIP: 91 Layer: Consensus (soft fork) Title: Reduced threshold Segwit MASF
No reviewscodex32: Checksummed SSSS-aware BIP32 seeds
This document proposes a checksummed base32 format, "codex32", and a standard for backing up and restoring the master seed of a [https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki BIP-0032] hierarchical deterministic wallet using it. It includes an encoding format, a BCH error-correcting checksum, and optional Shamir's secret sharing algorithms for share generation and secret recovery. Secret data can be encoded directly, or split into up to 31 shares. A minimum threshold of shares,
No reviewsTestnet 4
BIP: 94 Layer: Applications Title: Testnet 4
No reviewsFast Merkle Trees
BIP: 98 Layer: Consensus (soft fork) Title: Fast Merkle Trees
No reviewsMotivation and deployment of consensus rule changes ([soft/hard]forks)
BIP: 99 Title: Motivation and deployment of consensus rule changes ([soft/hard]forks) Authors: Jorge Timón <jtimon@jtimon.cc>
No reviewsDynamic maximum block size by miner vote
BIP: 100 Layer: Consensus (hard fork) Title: Dynamic maximum block size by miner vote
No reviewsIncrease maximum block size
BIP: 101 Layer: Consensus (hard fork) Title: Increase maximum block size
No reviewsBlock size increase to 2MB
BIP: 102 Layer: Consensus (hard fork) Title: Block size increase to 2MB
No reviewsBlock size following technological growth
BIP: 103 Layer: Consensus (hard fork) Title: Block size following technological growth
No reviews'Block75' - Max block size like difficulty
BIP: 104 Layer: Consensus (hard fork) Title: 'Block75' - Max block size like difficulty
No reviewsConsensus based block size retargeting algorithm
BIP: 105 Layer: Consensus (hard fork) Title: Consensus based block size retargeting algorithm
No reviewsDynamically Controlled Bitcoin Block Size Max Cap
BIP: 106 Layer: Consensus (hard fork) Title: Dynamically Controlled Bitcoin Block Size Max Cap
No reviewsDynamic limit on the block size
BIP: 107 Layer: Consensus (hard fork) Title: Dynamic limit on the block size
No reviewsTwo million byte size limit with sigop and sighash limits
BIP: 109 Layer: Consensus (hard fork) Title: Two million byte size limit with sigop and sighash limits
No reviewsReduced Data Temporary Softfork
BIP: 110 Layer: Consensus (soft fork) Title: Reduced Data Temporary Softfork
No reviewsNODE_BLOOM service bit
BIP: 111 Layer: Peer Services Title: NODE_BLOOM service bit
No reviewsCHECKSEQUENCEVERIFY
BIP: 112 Layer: Consensus (soft fork) Title: CHECKSEQUENCEVERIFY
No reviewsMedian time-past as endpoint for lock-time calculations
BIP: 113 Layer: Consensus (soft fork) Title: Median time-past as endpoint for lock-time calculations
No reviewsMerkelized Abstract Syntax Tree
BIP: 114 Layer: Consensus (soft fork) Title: Merkelized Abstract Syntax Tree
No reviewsGeneric anti-replay protection using Script
BIP: 115 Layer: Consensus (soft fork) Title: Generic anti-replay protection using Script
No reviewsMERKLEBRANCHVERIFY
BIP: 116 Layer: Consensus (soft fork) Title: MERKLEBRANCHVERIFY
No reviewsTail Call Execution Semantics
BIP: 117 Layer: Consensus (soft fork) Title: Tail Call Execution Semantics
No reviewsSIGHASH_ANYPREVOUT for Taproot Scripts
This BIP describes a new type of public key for tapscript ([[bip-0342.mediawiki|BIP 342]]) transactions. It allows signatures for these public keys to not commit to the exact UTXO being spent. This enables dynamic binding of transactions to different UTXOs, provided they have compatible scripts.
No reviewsCHECKTEMPLATEVERIFY
BIP: 119 Layer: Consensus (soft fork) Title: CHECKTEMPLATEVERIFY
No reviewsProof of Payment
BIP: 120 Layer: Applications Title: Proof of Payment
No reviewsProof of Payment URI scheme
BIP: 121 Layer: Applications Title: Proof of Payment URI scheme
No reviewsURI scheme for Blockchain references / exploration
BIP: 122 Layer: Applications Title: URI scheme for Blockchain references / exploration
No reviewsBIP Classification
BIP: 123 Title: BIP Classification Authors: Eric Lombrozo <elombrozo@gmail.com>
No reviewsHierarchical Deterministic Script Templates
BIP: 124 Layer: Applications Title: Hierarchical Deterministic Script Templates
No reviewsOpt-in Full Replace-by-Fee Signaling
BIP: 125 Layer: Applications Title: Opt-in Full Replace-by-Fee Signaling
No reviewsBest Practices for Heterogeneous Input Script Transactions
BIP: 126 Title: Best Practices for Heterogeneous Input Script Transactions Authors: Kristov Atlas <kristov@openbitcoinprivacyproject.org>
No reviewsSimple Proof-of-Reserves Transactions
BIP: 127 Layer: Applications Title: Simple Proof-of-Reserves Transactions
No reviewsTimelock-Recovery Storage Format
BIP: 128 Layer: Applications Title: Timelock-Recovery Storage Format
No reviewsBitcoin Secure Multisig Setup (BSMS)
This document proposes a mechanism to set up multisig wallets securely.
No reviewssendheaders message
BIP: 130 Layer: Peer Services Title: sendheaders message
No reviews"Coalescing Transaction" Specification (wildcard inputs)
BIP: 131 Layer: Consensus (hard fork) Title: "Coalescing Transaction" Specification (wildcard inputs)
No reviewsCommittee-based BIP Acceptance Process
BIP: 132 Title: Committee-based BIP Acceptance Process Authors: Andy Chase <theandychase@gmail.com>
No reviewsfeefilter message
BIP: 133 Layer: Peer Services Title: feefilter message
No reviewsFlexible Transactions
BIP: 134 Layer: Consensus (hard fork) Title: Flexible Transactions
No reviewsGeneralized version bits voting
BIP: 135 Title: Generalized version bits voting Authors: Sancho Panza <sanch0panza@protonmail.com>
No reviewsBech32 Encoded Tx Position References
This document proposes a convenient, human usable encoding to refer to a within the Bitcoin blockchain--known as . The primary purpose of this encoding is to allow users to refer to a confirmed transaction (and optionally, a particular outpoint index within the transaction) in a standard, reliable, and concise way. ''Please note: Unlike a transaction ID, , where there is a strong cryptographic link between the ID and the actual transaction, a only provides a weak link to a particular transact
No reviewsSignatures of Messages using Private Keys
BIP: 137 Layer: Applications Title: Signatures of Messages using Private Keys
No reviewsNormalized TXID
BIP: 140 Layer: Consensus (soft fork) Title: Normalized TXID
No reviewsSegregated Witness (Consensus layer)
BIP: 141 Layer: Consensus (soft fork) Title: Segregated Witness (Consensus layer)
No reviewsAddress Format for Segregated Witness
BIP: 142 Layer: Applications Title: Address Format for Segregated Witness
No reviewsTransaction Signature Verification for Version 0 Witness Program
BIP: 143 Layer: Consensus (soft fork) Title: Transaction Signature Verification for Version 0 Witness Program
No reviewsSegregated Witness (Peer Services)
BIP: 144 Layer: Peer Services Title: Segregated Witness (Peer Services)
No reviewsgetblocktemplate Updates for Segregated Witness
BIP: 145 Layer: API/RPC Title: getblocktemplate Updates for Segregated Witness
No reviewsDealing with signature encoding malleability
BIP: 146 Layer: Consensus (soft fork) Title: Dealing with signature encoding malleability
No reviewsDealing with dummy stack element malleability
BIP: 147 Layer: Consensus (soft fork) Title: Dealing with dummy stack element malleability
No reviewsMandatory activation of segwit deployment
BIP: 148 Layer: Consensus (soft fork) Title: Mandatory activation of segwit deployment
No reviewsSegregated Witness (second deployment)
BIP: 149 Layer: Consensus (soft fork) Title: Segregated Witness (second deployment)
No reviewsPeer Authentication
BIP: 150 Layer: Peer Services Title: Peer Authentication
No reviewsPeer-to-Peer Communication Encryption
BIP: 151 Layer: Peer Services Title: Peer-to-Peer Communication Encryption
No reviewsCompact Block Relay
BIP: 152 Layer: Peer Services Title: Compact Block Relay
No reviewsRate Limiting via peer specified challenges
BIP: 154 Layer: Peer Services Title: Rate Limiting via peer specified challenges
No reviewsaddrv2 message
This document proposes a new P2P message to gossip longer node addresses over the P2P network. This is required to support new-generation Onion addresses, I2P, and potentially other networks that have longer endpoint addresses than fit in the 128 bits of the current addr message.
No reviewsDandelion - Privacy Enhancing Routing
BIP: 156 Layer: Peer Services Title: Dandelion - Privacy Enhancing Routing
No reviewsClient Side Block Filtering
BIP: 157 Layer: Peer Services Title: Client Side Block Filtering
No reviewsCompact Block Filters for Light Clients
BIP: 158 Layer: Peer Services Title: Compact Block Filters for Light Clients
No reviewsNODE_NETWORK_LIMITED service bit
BIP: 159 Layer: Peer Services Title: NODE_NETWORK_LIMITED service bit
No reviewsCurrency/exchange rate information API
BIP: 171 Layer: Applications Title: Currency/exchange rate information API
No reviewsDefine Bitcoin Subunits as Satoshis
BIP: 172 Layer: Applications Title: Define Bitcoin Subunits as Satoshis
No reviewsBase32 address format for native v0-16 witness outputs
This document proposes a checksummed base32 format, "Bech32", and a standard for native segregated witness output addresses using it.
No reviewsPartially Signed Bitcoin Transaction Format
This document proposes a binary transaction format which contains the information necessary for a signer to produce signatures for the transaction and holds the signatures for an input while the input does not have a complete set of signatures. The signer can be offline as all necessary information will be provided in the transaction. The generic format is described here in addition to the specification for version 0 of this format.
No reviewsPay to Contract Protocol
BIP: 175 Layer: Applications Title: Pay to Contract Protocol
No reviewsBits Denomination
BIP: 176 Title: Bits Denomination Authors: Jimmy Song <jaejoon@gmail.com>
No reviewsRedefine Bitcoin's Base Unit
This BIP proposes redefining the commonly recognized "bitcoin" unit so that the base unit becomes the primary reference unit. Under this proposal, one bitcoin is defined as that indivisible base unit, eliminating the convention of synthetic decimal places. By making the base unit the standard measure, this BIP aims to simplify user comprehension, reduce confusion, and align on-chain values directly with their displayed representation.
No reviewsVersion Extended WIF
BIP: 178 Layer: Applications Title: Version Extended WIF
No reviewsName for payment recipient identifiers
BIP: 179 Title: Name for payment recipient identifiers Authors: Emil Engler <me@emilengler.com>
No reviewsBlock size/weight fraud proof
BIP: 180 Layer: Peer Services Title: Block size/weight fraud proof
No reviewsHashed Time-Locked Collateral Contract
BIP: 197 Layer: Applications Title: Hashed Time-Locked Collateral Contract
No reviewsHashed Time-Locked Contract transactions
BIP: 199 Layer: Applications Title: Hashed Time-Locked Contract transactions
No reviewsHashrate Escrows (Consensus layer)
BIP: 300 Layer: Consensus (soft fork) Title: Hashrate Escrows (Consensus layer)
No reviewsBlind Merged Mining (Consensus layer)
BIP: 301 Layer: Consensus (soft fork) Title: Blind Merged Mining (Consensus layer)
No reviewsStratum protocol extensions
BIP: 310 Layer: Applications Title: Stratum protocol extensions
No reviewsnVersion bits for general purpose use
BIP: 320 Title: nVersion bits for general purpose use Authors: BtcDrak <btcdrak@gmail.com>
No reviewsURI Scheme
BIP: 321 Layer: Applications Title: URI Scheme
No reviewsGeneric Signed Message Format
BIP: 322 Layer: Applications Title: Generic Signed Message Format
No reviewsVersion 2 P2P Encrypted Transport Protocol
This document proposes a new Bitcoin P2P transport protocol, which features opportunistic encryption, a mild bandwidth reduction, and the ability to negotiate upgrades before exchanging application messages.
No reviewsSignet
BIP: 325 Layer: Applications Title: Signet
No reviewsAnti-fee-sniping in taproot transactions
BIP: 326 Layer: Applications Title: Anti-fee-sniping in taproot transactions
No reviewsMuSig2 for BIP340-compatible Multi-Signatures
This document proposes a standard for the [https://eprint.iacr.org/2020/1261.pdf MuSig2] multi-signature scheme. The standard is compatible with [https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki BIP340] public keys and signatures. It supports ''tweaking'', which allows deriving [https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki BIP32] child keys from aggregate public keys and creating [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki BIP341] Taproot outpu
No reviewsDerivation Scheme for MuSig2 Aggregate Keys
BIP: 328 Layer: Applications Title: Derivation Scheme for MuSig2 Aggregate Keys
No reviewsWallet Labels Export Format
BIP: 329 Layer: Applications Title: Wallet Labels Export Format
No reviewsTransaction announcements reconciliation
BIP: 330 Layer: Peer Services Title: Transaction announcements reconciliation
No reviewsAncestor Package Relay
BIP: 331 Layer: Peer Services Title: Ancestor Package Relay
No reviewsCompressed Transactions
This document proposes a serialization scheme for compressing Bitcoin transactions. The compressed Bitcoin transactions can reach a serialized size of less than 50% of the original serialized transaction. One method for compressing involves reducing the transaction outpoints in a potentially lossy way. Therefore, it is an optional path for compression. Compressing the outpoints is necessary for compressed transactions to reach less than 70% of the original size.
No reviewsDisable transaction relay message
BIP: 338 Layer: Peer Services Title: Disable transaction relay message
No reviewsWTXID-based transaction relay
BIP: 339 Layer: Peer Services Title: WTXID-based transaction relay
No reviewsSchnorr Signatures for secp256k1
This document proposes a standard for 64-byte Schnorr signatures over the elliptic curve ''secp256k1''.
No reviewsTaproot: SegWit version 1 spending rules
This document proposes a new SegWit version 1 output type, with spending rules based on Taproot, Schnorr signatures, and Merkle branches.
No reviewsValidation of Taproot Scripts
This document specifies the semantics of the initial scripting system under [[bip-0341.mediawiki|BIP341]].
No reviewsMandatory activation of taproot deployment
BIP: 343 Layer: Consensus (soft fork) Title: Mandatory activation of taproot deployment
No reviewsOP_VAULT
BIP: 345 Layer: Consensus (soft fork) Title: OP_VAULT
No reviewsOP_TXHASH
``` BIP: 346 Layer: Consensus (soft fork)
No reviewsOP_CAT in Tapscript
BIP: 347 Layer: Consensus (soft fork) Title: OP_CAT in Tapscript
No reviewsCHECKSIGFROMSTACK
This BIP describes a new opcode for the purpose of checking cryptographic signatures in bitcoin scripts against data from the stack.
No reviewsOP_INTERNALKEY
This BIP describes a new tapscript opcode (`OP_INTERNALKEY`) which pushes the _taproot internal key_ to the stack.
No reviewsBech32m format for v1+ witness addresses
This document defines an improved variant of Bech32 called , and amends BIP173 to use Bech32m for native segregated witness outputs of version 1 and later. Bech32 remains in use for segregated witness outputs of version 0.
No reviewsPrivate Payments
BIP: 351 Layer: Applications Title: Private Payments
No reviewsSilent Payments
This document specifies a protocol for static payment addresses in Bitcoin without on-chain linkability of payments or a need for on-chain notifications.
No reviewsDNS Payment Instructions
BIP: 353 Layer: Applications Title: DNS Payment Instructions
No reviewsPay-to-Merkle-Root (P2MR)
This document proposes a new output type: Pay-to-Merkle-Root (P2MR), via a soft fork. P2MR outputs operate with nearly the same functionality as P2TR (Pay-to-Taproot) outputs, but with the key path spend removed. Through this modification, P2MR outputs allow developers to use script trees and tapscript in a manner that is: # resistant to long exposure attacks by Cryptographically Relevant Quantum Computers (CRQCs), and # resistant to future cryptanalytic approaches that may compromise the elli
No reviewsPSBT Version 2
This document proposes a second version of the Partially Signed Bitcoin Transaction format described in BIP 174 which allows for inputs and outputs to be added to the PSBT after creation.
No reviewsTaproot Fields for PSBT
This document proposes additional fields for BIP 174 PSBTv0 and BIP 370 PSBTv2 that allow for BIP 340/341/342 Taproot data to be included in a PSBT of any version. These will be fields for signatures and scripts that are relevant to the creation of Taproot inputs.
No reviewsPay-to-contract tweak fields for PSBT
This document proposes additional fields for BIP 174 PSBTv0 and BIP 370 PSBTv2 that allow for pay-to-contract (P2C) key tweaking data to be included in a PSBT of any version. These will represent extra-transaction information required for the signer to produce valid signatures spending previous outputs.
No reviewsMuSig2 PSBT Fields
This document proposes additional fields for [[bip-0174.mediawiki|BIP 174]] PSBTv0 and [[bip-0370.mediawiki|BIP 370]] PSBTv2 that allow for [[bip-0327.mediawiki|BIP 327]] MuSig2 Multi-Signature data to be included in a PSBT of any version. These will be fields for the participants' keys, the public nonces, and the partial signatures produced with MuSig2.
No reviewsDiscrete Log Equality Proofs
This document proposes a standard for 64-byte zero-knowledge ''discrete logarithm equality proofs'' (DLEQ proofs) over an elliptic curve. For given elliptic curve points ''A'', ''B'', ''C'', ''G'', and a scalar ''a'' known only to the prover where ''A = a⋅G'' and ''C = a⋅B'', the prover proves knowledge of ''a'' without revealing anything about ''a''. This can, for instance, be useful in ECDH: if ''A'' and ''B'' are ECDH public keys, and ''C'' is their ECDH shared secret computed as ''C = a⋅B'',
No reviewsSending Silent Payments with PSBTs
This document proposes additional fields and updated role responsibilities for BIP370 PSBTv2 which adds support for sending to silent payments as described in BIP352.
No reviewsMiniscript
This document specifies Miniscript, a language for writing (a subset of) Bitcoin Scripts in a structured way, enabling analysis, composition, generic signing and more.
No reviewsOutput Script Descriptors General Operation
BIP: 380 Layer: Applications Title: Output Script Descriptors General Operation
No reviewsNon-Segwit Output Script Descriptors
BIP: 381 Layer: Applications Title: Non-Segwit Output Script Descriptors
No reviewsSegwit Output Script Descriptors
BIP: 382 Layer: Applications Title: Segwit Output Script Descriptors
No reviewsMultisig Output Script Descriptors
BIP: 383 Layer: Applications Title: Multisig Output Script Descriptors
No reviewscombo() Output Script Descriptors
BIP: 384 Layer: Applications Title: combo() Output Script Descriptors
No reviewsraw() and addr() Output Script Descriptors
BIP: 385 Layer: Applications Title: raw() and addr() Output Script Descriptors
No reviewstr() Output Script Descriptors
BIP: 386 Layer: Applications Title: tr() Output Script Descriptors
No reviewsTapscript Multisig Output Script Descriptors
BIP: 387 Layer: Applications Title: Tapscript Multisig Output Script Descriptors
No reviewsWallet Policies for Descriptor Wallets
BIP: 388 Layer: Applications Title: Wallet Policies for Descriptor Wallets
No reviewsMultipath Descriptor Key Expressions
BIP: 389 Layer: Applications Title: Multipath Descriptor Key Expressions
No reviewsmusig() Descriptor Key Expression
BIP: 390 Layer: Applications Title: musig() Descriptor Key Expression
No reviewsSilent Payment Output Script Descriptors
BIP: 392 Layer: Applications Title: Silent Payment Output Script Descriptors
No reviewsTopology Restrictions for Pinning
BIP: 431 Layer: Applications Title: Topology Restrictions for Pinning
No reviewsPay to Anchor (P2A)
BIP: 433 Layer: Applications Title: Pay to Anchor (P2A)
No reviewsPeer Feature Negotiation
This BIP defines a peer-to-peer (P2P) message that can be used for announcements and negotiation related to support of new peer-to-peer features.
No reviewsOP_PAIRCOMMIT
This BIP proposes a new tapscript opcode, `OP_PAIRCOMMIT`, which enables efficient and secure commitment to pairs of stack elements using a tagged hash construction. This opcode provides limited vector commitment functionality, facilitating more expressive contracts and improved data availability in Bitcoin scripts.
No reviewsOP_CHECKCONTRACTVERIFY
BIP: 443 Layer: Consensus (soft fork) Title: OP_CHECKCONTRACTVERIFY
No reviewsOP_TEMPLATEHASH
This document proposes a new operation for [Tapscript][tapscript-bip]: `OP_TEMPLATEHASH`. It introduces the ability to push on the stack a hash of the transaction spending an output.
No reviewsTaproot-native (Re)bindable Transactions
This document proposes deploying three new operations for [Tapscript][tapscript-bip]: [BIP 446 `OP_TEMPLATEHASH`][templatehash-bip], [BIP 348 `OP_CHECKSIGFROMSTACK`][csfs-bip], and [BIP 349 `OP_INTERNALKEY`][internalkey-bip]. These minimal operations introduce modular functionalities which improve existing second layer protocols and make new ones possible through plausible interactivity requirements.
No reviewsBIP 360 - Pay to Merkle Root (P2MR)
This spent several months gathering feedback from the mailing list and from other advisors. This is hopefully polished enough to submit upstream. Let me know if you have any questions or feedback, and of course feel free to submit suggestions. Thank you for your time.
Update BIP-442 reference links (BIP-119 and BIP-446 urls)
BIP-446 got merged, redirecting to bitcoin/bips repo.
No reviewsBIP-174: mark PSBT_GLOBAL_VERSION as required for v2
This PR adds version 2 to the "Versions Requiring Inclusion" column (currently empty) for the `PSBT_GLOBAL_VERSION` field. See [BIP-370](https://github.com/theStack/bips/blob/master/bip-0370.mediawiki): https://github.com/bitcoin/bips/blob/2778442c21cef2290ae3e0c843d9f3179aa1cdd0/bip-0370.mediawiki?plain=1#L41
No reviewsBIP 110: Reduced Data Temporary Softfork
Mailing list thread at https://groups.google.com/g/bitcoindev/c/nOZim6FbuF8 --- Editor note: please post conceptual feedback and meta-commentary on the mailing list [thread](https://groups.google.com/g/bitcoindev/c/nOZim6FbuF8), and focus here on: - expert technical review of the specification - specific, concrete, helpful proposals for the other sections Please refrain from personal or heated commentary, trolling, pedantry, and repeating yourself. As this PR now has many comments, please on
BIP446: OP_TEMPLATEHASH and BIP448: Taproot-native (Re)bindable Transactions
Opening this here for wider discussion and feedback. edit: Probably need to add implementation section: https://github.com/instagibbs/bitcoin/tree/2025-07-op_templatehash
No reviewsBIP 89: Chain Code Delegation for Private Collaborative Custody
We propose a new BIP for Chain Code Delegation, a collaborative custody technique that involves privileged participants (delegatee) withholding BIP32 chain codes at key setup time from a delegator, and sharing only enough information for non‑privileged participants to provide their signature. For non-blinded signing, the delegatee derives a per‑spend scalar tweak t from the (withheld) chain code, the delegator computes the child key (x+t, P+tG), and produces a standard signature over the transa
No reviewsBIP-128: Exact specification for the checksum calculation
The checksum calculation should be consistent in all implementations.
No reviewsBIP54: Consensus Cleanup test vectors
This introduces test vectors for BIP54. There is one set of vectors per each of the 4 mitigations. The vectors were generated using the BIP54 implementation against Bitcoin Inquisition available [here](https://github.com/bitcoin-inquisition/bitcoin/pull/99), as well as a custom miner as a Bitcoin Core unit test available [here](https://github.com/darosior/bitcoin/commits/bip54_miner/). Documentation is provided with more details about each set of test vectors and describing how to use them.
No reviewsBIP442: OP_PAIRCOMMIT
`OP_PAIRCOMMIT` is the newest member of the LNhance family of opcodes. It provides limited vector commitment functionality in tapscript. When evaluated, the `OP_PAIRCOMMIT` instruction: * pops the top two values off the stack, * takes the "PairCommit" tagged SHA256 hash of the stack elements, * pushes the resulting commitment on the top of the stack. Discussion: https://delvingbitcoin.org/t/op-paircommit-as-a-candidate-for-addition-to-lnhance/1216/12 Mail list proposal: https://groups.google.
No reviewsbip-0044: add Requires header for BIP32 and BIP43
### Summary This PR adds a `Requires: 32, 43` header to BIP-0044. ### Motivation BIP-0044 explicitly states in its abstract and specification that it is based on the HD wallet structure defined in BIP-0032 and applies the purpose scheme defined in BIP-0043. This dependency is currently described in the text but could be extended to the preamble. This change would make BIP-0044 more consistent to the BIP process and would make its interoperability with other BIPs clearer.
No reviewsBIP-352: handle invalid privkey / pubkey sums for sending / scanning, add changelog
See the discussion in the corresponding secp256k1 PR (https://github.com/bitcoin-core/secp256k1/pull/1519#issuecomment-2142599641, https://github.com/bitcoin-core/secp256k1/pull/1519#issuecomment-2143167510, https://github.com/bitcoin-core/secp256k1/pull/1519#issuecomment-2144837459), where it was recommended to include this corner-case in the BIP by real-or-random: > Indeed, this should be in the BIP, ideally even in the pseudocode. If our code starts to reject "payments", then better be autho
No reviewsBIP-352: vendor secp256k1lab and use it for reference implementation
This PR adds [secp256k1lab](https://github.com/secp256k1lab/secp256k1lab) version 1.0.0 as subtree within the `bip-0352` folder [1] and takes use of it in the reference implementation. In particular, the file `secp256k1.py` is removed and the `GE` and `Scalar` classes are used from the secp256k1lab.secp256k1, replacing `ECPubKey` and `ECKey`, respectively. See the [main commit message](https://github.com/bitcoin/bips/commit/e2b50af0a657d17a0fc6437538e8879d5818af45) for a detailed table of replac
No reviews[bip-0443]: fix link to bip-0341
OP_CAT to BIP 0003 format, add usecase and test vectors
* Add two use cases to motivation * Add BIP 003 versioning * Test vectors
No reviewsBIP32: edits by ddustin for clarity
Picks up @ddustin's work in https://github.com/bitcoin/bips/pull/785, updated with the latest reviewers' feedback.
No reviewsBIP69: examples file fixes and update to python3
In bip-0069_examples.py: - Fix print_outputs() to use sorted output tuples instead of unsorted - Add Python 3 compatibility using functools.cmp_to_key() - Convert string hashes to byte arrays in second example - Make file executable with shebang for python3 - Add clearer output formatting with transaction hashes and section headers
No reviewsBIP392: Silent Payment Output Script Descriptors
This builds on and provides an alternative to #2026, which references an [earlier discussion](https://btctranscripts.com/bitcoin-core-dev-tech/2024-04/silent-payment-descriptors). Instead of modifying BIP352, a new output descriptor format is proposed in the style of BIPs 381-387. Similar to #2026 key expressions starting with `spscan` and `spspend` are specified, but contain only version and key material information. The wallet birthday and additional labels are specified as optional addition
BIP-110: Clarify rule 2, update Deployment, and specify GBT usage
Updates to match the reference implementation and address community feedback: - **Rule 2**: Several people were confused about which witness stack elements are limited by rule 2, so I have added a definition for "script argument witness items" (@murchandamus' preferred nomenclature) with a FAQ entry explaining exactly which elements are excluded and why. See [this thread](https://github.com/bitcoin/bips/pull/2017#discussion_r2854672336) on the original PR for more context. - **Deployment**: The
No reviewsBIP-390: allow musig() under rawtr()
musig() was previously specified as only usable under tr(), but the BIP-390 test vectors already include valid rawtr(musig(...)) descriptors and Bitcoin Core’s descriptor implementation accepts musig() as a generic KEY under both tr() and rawtr(). This change updates the wording to explicitly allow musig() inside rawtr(), aligning the specification with the existing test vectors and Core semantics without changing any behavior.
No reviewsBIP-352: introduce per-group recipient limit K_max (=2323)
As previously announced in the [libsecp256k1 `silentpayments` module discussion](https://github.com/bitcoin-core/secp256k1/issues/1799#issuecomment-3842046237) and on the [mailing list](https://groups.google.com/g/bitcoindev/c/tgcAQVqvzVg) ~2 weeks ago, this PR introduces a `K_max` limit to BIP-352 to mitigate worst-case scanning time for adversarial transactions. So far [no objections have been raised](https://github.com/bitcoin-core/secp256k1/issues/1799#issuecomment-3891774608) against that p
No reviewsBIP-310: fix version-rolling.min-bit-count parameter spec
The version-rolling.min-bit-count field was previously documented as a TMask return value, even though the examples and real-world usage treat it as a request parameter with an integer bit count. This change moves version-rolling.min-bit-count to the extension parameters section and changes its type to Integer (>= 0), keeping the original explanatory text. This makes the specification consistent with the JSON examples and with existing implementations of the stratum protocol extension.
No reviewsBIP129: add requirements header
BIP 129 requires several prerequisite BIPs, so state them in a "Requires" header.
No reviewsBIP-174: port public key terminology from BIP 373
The changes are ported from PR 1705 so that the same public key terminology is reflected in BIP 174 as well. Please refer this other PR for more details.
No reviewsBIP20,21: add Proposed-Replacement and Replaces headers
to clarify the relationship between BIPs 20 and 21.
No reviewsBIP-383: remove extra stray </tt>
Removed an unmatched </tt> tag from the "Multiple Extended Keys" section heading. The extra closing tag had no corresponding opening <tt>, produced invalid markup, and was inconsistent with how other descriptive headings are formatted in BIPs.
No reviewsBIP-117: add missing BIP8 reference
Added the missing reference entry for BIP8 in the References section of BIP-0117 so that the in-text citation “BIP8 (Version bits with lock-in by height)[9]” points to a valid BIP URL.
No reviewsBIP128: Timelock-Recovery Storage Format
This simple BIP explains what Timelock-Recovery plans are, and how they to store them In a standard JSON format, that services could parse and then monitor/execute.
No reviewsBIP352: Add Sebastian Falbesoner as Author
@RubenSomsen [announced](https://github.com/bitcoin-core/secp256k1/issues/1799#issuecomment-3773155788) that @theStack was added as an Author in January. This PR adds him to the document to reflect this change.
No reviewsBIP85: fix typo in byte value
18 English mnemonic should be 192 bits here
No reviewsProcess: Activate BIP3
This is a first draft of applying the changes prescribed by BIP 3 in the section [Updates to Existing BIPs should this BIP be Activated](https://github.com/bitcoin/bips/blob/master/bip-0003.md#updates-to-existing-bips-should-this-bip-be-activated). It also updates the CI-scripts to align with the new formatting. ---- Resolved: - [x] @real-or-random’s proposal to update the Licensing scheme - [x] Enforce order of headers in Preamble and fix order in BIPs that don’t conform Planned for follow
BIP-346: Escape pipe characters in markdown table cells
Before: <img width="487" height="508" alt="Screenshot 2026-02-04 at 11 44 37 AM" src="https://github.com/user-attachments/assets/8d34ed86-3479-4c2f-84b1-ef737dd3f79b" /> After: <img width="487" height="507" alt="Screenshot 2026-02-04 at 11 43 49 AM" src="https://github.com/user-attachments/assets/c9e15e83-0492-4557-b392-4a7f9466f4fb" /> https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables#formatting-content-within-your-tab
No reviewsBIP 434: fix license inconsistency
Make the header match the text.
No reviewsBIP-371: use canonical PSBT_IN_TAP_KEY_SIG in invalid test titles
Correct two test-case headings that incorrectly used PSBT_KEY_PATH_SIG. The canonical Taproot key-spend field name is PSBT_IN_TAP_KEY_SIG (0x13) per BIP-371/BIP-174, so using PSBT_KEY_PATH_SIG was inconsistent and potentially confusing.
No reviewsBIP 324, 434: Specify p2p v2 one-byte identifier for FEATURE message
The feature message is intended to be used repeatedly prior to verack, so it should have a short id to save a little bandwidth, and the identifier has to be hardcoded, because it's used before negotiation is completed.
No reviewsBIPs 174 and 375: fix PSBT_OUT_SP_V0_LABEL value
Assuming a by one increment in the keytype of the silent payments output fields, the following numeral to 0x09 in the hexadecimal system is 0x0a, not 0x10.
No reviewsBIP 324: Clarify equivalence between 1 and 13 byte message types
BIP 324 introduced single-byte short identifiers for messages used multiple times in a connection, relating them to existing v1 messages, however it left it ambiguous as to what should happen if a 13-byte message_type was received. Clarify that the single byte message types are simply aliases for the longer equivalents, and that nodes should behave identically whether a message uses a one byte message_type or the equivalent 13-byte message type. Also lowercases the message types (matching the o
No reviewsBIP-374: vendor secp256k1lab and use it for reference implementation
Following up on the recent decision that [secp256k1lab](https://github.com/secp256k1lab/secp256k1lab) should be vendored per-BIP if needed/useful (see https://github.com/bitcoin/bips/pull/2004#issuecomment-3713521737 ff. and https://github.com/bitcoin/bips/pull/1855#issuecomment-3723682682 ff.), this PR exercises this for BIP-374. The changes add secp256k1lab version 1.0.0 as subtree [1] within the `bip-0374` folder and take use of it in the reference implementation. In particular, `secp256k1.py
No reviewsBIP 434: Peer Feature Negotiation
Abstract: This BIP defines a peer-to-peer message that can be used for announcements and negotiation related to support of new peer-to-peer features. Mailing list post: https://gnusha.org/pi/bitcoindev/aUUXLgEUCgGb122o@erisian.com.au/T/#u Mailing list discussion: https://groups.google.com/g/bitcoindev/c/DFXtbUdCNZE
No reviewsBIP346: OP_TXHASH
## Semantic changes I thought it might be valuable to keep track of actual semantic changes being made since the initial out-of-draft version. * 2023-12-19: Added relative indices for individual mode. ## Implementations * A proposed implementation for Bitcoin Core is available here: https://github.com/bitcoin/bitcoin/pull/29050 * A proposed implementation for rust-bitcoin is available here: https://github.com/rust-bitcoin/rust-bitcoin/pull/2275
No reviewsBIP14: Backfill discussion URLs
BIP14’s Discussion header only had the date, so I’m backfilling the header with links to the discussions. Thanks to @ajtowns for [digging these up](https://github.com/bitcoin/bips/pull/1820#issuecomment-3757836846).
No reviewsbip-0054: correct link typo in test vectors README
Looks like i typed this one by hand incorrectly, thanks to Chris Stewart for noticing.
No reviewsBIP-373: denote different public key types/purposes consistently
While reviewing https://github.com/bitcoin/bitcoin/pull/31247 a while ago I noticed that the mentioned public keys in the PSBT fields of this BIP are quite confusing. This is mostly due to a non-consistent mention of types (plain vs. x-only) and a purpose that is sometimes missing. This PR aims to improve this in the following ways: - be specific about the purpose of pubkey types in PSBT fields ("plain pubkey" alone doesn't say a lot, especially if it's used repeatedly within a field; explicitly
No reviewsBIP174: Specify PSBT_IN_PREVIOUS_TXID serialization order
This change updates descriptions for the `PSBT_IN_PREVIOUS_TXID` field to specify serialization order. It was not straightforward the order with which to store the txid in a psbt. It's not clearly specified in the spec, and there are not many resources or parsers to aid in debugging PSBTv2. I found the BIP370 test vector "Case: PSBTv0 but with PSBT_IN_PREVIOUS_TXID." seems to imply that the order of this txid value in `PSBT_IN_PREVIOUS_TXID` should match network serialization order. I'm torn o
No reviewsReplace BIP 77 mermaid diagrams with ascii diagrams
Updated sequence diagrams to use text format instead of mermaid syntax responding to @achow101's [comment](https://github.com/bitcoin/bips/pull/1483#discussion_r2430441734) I cargo cult'd the RFC Rules: > “How are images handled for the plain text version of an RFC?” > The RFC Editor will accept both ASCII art and SVG. If only ASCII art is provided, it will be included in all publication formats. If ASCII art and SVG are both provided, ASCII art will be included in the plain text, and SVG in a
No reviewsBIP 433: Add P2A BIP
For interoperability with other schemes, it behooves me to write a BIP for this output type. It's already standard to spend in well over half the network. h/t roasbeef for bothering me about this repeatedly
No reviewsBIP-327: correct DeterministicSign pubnonce and key length
BIP158, refactor: remove duplicate conditional
Removes redundant duplicate condition check that was evaluating the same block height twice in the test vector generation loop.
No reviewsBIP 77: Async Payjoin
This document proposes an asynchronous, backwards-compatible second version of the payjoin protocol described in [BIP 78](bip-0078.mediawiki), enabling complete payjoin receiver functionality including payment output substitution with only an HTTP client rather than server. The former requirement for receivers to run HTTP servers is replaced with an untrusted third-party "payjoin directory" store-and-forward server accessed by polling clients which communicate using an asynchronous protocol and
No reviewsBIP-322: fix proof-of-funds inputs wording
The Signing section previously stated that signers may add additional outputs to to_sign for proving control of funds. This contradicts the Full (Proof of Funds) subsection, which specifies that the claimed UTXOs must be included as additional inputs of to_sign and validated against the current UTXO set, and also conflicts with the requirement that to_sign has exactly one output (an OP_RETURN).
No reviewsBIP-337: fix incorrect reference in Input Data Outpoint row
Corrected the Input Data → Outpoint description to refer to the uncompressed outpoint instead of an uncompressed signature. The previous wording was misleading and inconsistent with the linked Uncompressed Outpoint section. This change clarifies the intended reference without modifying any encoding details or test vectors.
No reviewsbip3: Address feedback prompted by Motion to Activate
This PR addresses feedback from the mailing list and a recent pull request to BIP 3. The following functional changes are made: - Revert the recently added AI guidance - Broaden the formats per which reference implementations may be provided - Move Type header responsibility to the author(s) A Changelog section is added and backfilled, and a few editorial improvements are made. The Version header is omitted at this time, since it is not permitted under BIP 2.
No reviewsbip-325: document signet minimum difficulty
This was implicit in the genesis block's nbits value, but better to be clearer.
No reviewsBIP93: terminology, typo, and phrasing fixups
Various terminology fixes, typo fixes and phrase fixups from #2040 and #2023. @apoelstra said: >In the interest of moving forward I would kinda like Ben to make a new PR with the non-HRP changes, which it seems like everyone agrees with and would reduce the size of the diff of this one. https://github.com/bitcoin/bips/pull/2040#issuecomment-3617849434 This is that PR.
No reviewsBIP 352: Silent Payments
Silent payments is a static address protocol for Bitcoin, originally proposed on the mailing list here: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-March/020180.html Since then, the proposal has received several rounds of review and has a WIP implementation here: https://github.com/bitcoin/bitcoin/pull/27827 . The proposal has also been sent to the mailing list for review here: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-June/021750.html Proposing this as an
bip-373: Fix GLOBAL_XPUB key name and clean up compressed vs x-only note
Replaced incorrect PSBT key name PSBT_IN_GLOBAL_XPUB with the canonical PSBT_GLOBAL_XPUB (per BIP 174). This corrects scope naming (GLOBAL vs per-input) and aligns with existing PSBT specifications. Removed duplicated/garbled sentence and punctuation in the reference note explaining why compressed pubkeys are used instead of x-only. The note now clearly states the evenness-byte requirement and fingerprint rationale without repetition.
No reviewsBIP53: Clarify implementation complexity and improve tx notation
* 1st commit: The existing wording on master could be taken to mean that 64-byte transactions reduce implementation complexity for SPV wallets. * 2nd commit: Uses distinct notation for txids and tx-bytes.
No reviewsbip174: add test case for an invalid valuedata due to its size
A PSBT should be considered invalid if the size of `<valuedata>` doesn't match the specified size in `<valuesize>`. However we don't have any test case for it (and might be not well specified?). During differential fuzzing I noticed this is currently verified in Bitcoin Core (see below) but not checked in other implementations (e.g. btcd), causing a mismatch between them. ```cpp // Takes a stream and multiple arguments and unserializes them first as a vector then each object individually in the
No reviewsbip-0054: update forward compat section with Bitcoin Core v30
The BIP 54 sigops limit was made a standardness rule in Bitcoin Core 30.0 with the merge of https://github.com/bitcoin/bitcoin/pull/32521.
No reviewsAdd BIP324: v2 P2P Transport Protocol
Supersedes #1024 Link to rendered version for your convenience: https://github.com/dhruv/bips/blob/bip324/bip-0324.mediawiki Open questions: - The BIP text currently includes a [table for 1-byte message type IDs](https://github.com/dhruv/bips/blob/bip324/bip-0324.mediawiki#v2_Bitcoin_P2P_message_structure). The process for updating this table atomically to assign new IDs when new message types are being proposed is likely going to be an annoyance. What are better ways to handle ongoing allocat
No reviewsBIP3: add guidance on originality, quality, LLMs
and soundness, and ensure it was proposed to the ML by one of the BIP authors. Follows up on the discussion starting from https://github.com/bitcoin/bips/pull/2005#issuecomment-3408065869.
No reviewsBIP-116: add link to bip-8 and fix collision
collision: BIP-8 was marked as [9] but [9] referenced [https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP68: Relative lock-time using consensus-enforced sequence numbers] also added a link for consistency with the rest of the bip
No reviewsbip54: clarify sigops counting, borrow bip16 language
The main issue is the text seemed ambiguous on whether the limit applied per input, or over the total transaction summing over all inputs. I added some language directly ripped from bip16, and made it clearer, I hope, that each field is evaluated separately.
No reviewsBIP 3: mention posting a dedicated ML thread
Clarify that the BIP author(s) post a new, dedicated thread on the mail list to present the idea. Address situations like https://github.com/bitcoin/bips/pull/2017#issuecomment-3448601772.
No reviewsBIP3: clarify number assignment
There's been confusion about this, so add the following clarification: "A number may be considered assigned only after it has been publicly announced in the pull request by a BIP Editor." The following, for instance, should not constitute assignment of a BIP number: - an announcement on social media - a provisional entry to the internal editor notes, pending feedback from the other editors (the entry can be subsequently removed) As well, BIP 2 already stipulates that assignment take place in
No reviewsBIP374: in tests, pass message when verifying proof with message
Ensure consistency by passing m=message when verifying a tampered proof Strengthens the test to match the proof generation context No behavior change expected; tests pass locally
No reviewsBIP324: Fix features bitmask for decoding-case selection
Supersedes https://github.com/bitcoin/bips/pull/1969. On top of https://github.com/bitcoin/bips/pull/1969. I'm one of the authors of BIP324 but let's wait for an ACK from @sipa, please.
No reviewsBIP-119: fix broken link
https://cyber.stanford.edu/sites/g/files/sbiybj9936/f/jeremyrubin.pdf - this link doesn't work https://rubin.io/public/pdfs/multi-txn-contracts.pdf - this link works
No reviewsbip155: mark torv2 as no longer in use
TorV2 is deprecated, implementations are removing any support for it and we could specify this deprecation here. Especially because implementations are no longer serializing/deserializing and relaying Tor v2 addresses, they're ignoring incoming Tor v2 addresses, etc.
No reviewsBIP-374: Pass G and m to VerifyProof in GenerateProof self-check
Problem: In GenerateProof step 85 the self-check calls VerifyProof(A, B, C, proof) without G and m, but VerifyProof is defined as VerifyProof(A, B, C, proof, G, m). This omission breaks self-check when a non-empty message m is used or when a non-default generator G is passed. Evidence: Spec definition requires G and m: The algorithm ''VerifyProof(A, B, C, proof, G, m)'' is defined as: * Fail if any of ''is_infinite(A)'', ''is_infinite(B)'', ''is_infinite(C)'', ''is_infinite(G)'' *
No reviewsbip-340: set all_passed=False on key generation mismatch
Fix test harness to correctly fail when public key generation does not match the expected vector. Previously, the “Failed key generation” branch only printed diagnostics without updating all_passed, leading to a false-positive overall test result. This is a bug because a keygen mismatch indicates an implementation error that must cause the test run to fail, consistent with how other failures in the harness set all_passed = False.
No reviewsBIP85: fix datetime string typo to align with UNIX Epoch time
Genesis block time is correct in Unix time, but human readable version is off by 10 minutes. (Single digit typo) Basically this changes the fingerprint, so should be consistent so as to ensure compatibility between BIP85-GPG implementations. (I am comparing my SeedSigner to Krux GPGap in this instance, the latter of which has gone with the human-readable time from the BIP whereas I went with Unix time and couldn't work out why the same input produced different results...)
No reviewsBIP321: add reference implementation, mention BIP21 replacement
- Add Reference Implementation section, using the BIP author's suggested implementation in https://github.com/bitcoin/bips/pull/1911#issuecomment-3324867313 - Mention replacement in addition to modification with respect to BIP21, for consistency with the "Replaces: 21" header
No reviewsBIP‑353: Clarify TXT record structure and concatenation order (single RR; RDATA order; no cross‑RR joins)
Clarifies existing intent without changing the on‑wire format. • Publishers: one TXT RR whose RDATA may contain multiple <character-string>s (≤255 bytes each, RFC 1035 §3.3.14). • Clients: concatenate the RR’s strings in RDATA order (no separators) before parsing; do not concatenate across multiple TXT RRs; if multiple bitcoin: TXT RRs exist at the same name, treat as invalid.
No reviewsBIP3: Rename Created to Assigned
Renames the “Created” header to “Assigned” to better reflect the meaning of the date held in this header field.
No reviewsRender author email addresses in markdown BIPs
@ajtowns pointed out in his [BIP 3 review]( https://github.com/bitcoin/bips/pull/1712#discussion_r1946113305) that the author email addresses in the preamble of BIPs in markdown format were not being rendered.
No reviewsAdd some BIP 353 DNSSEC proof test vectors and links
Mark BIP21 as replaced by 321, update 321 from Draft to Proposed
Not sure what the right timeline for this is, but at some point this should happen.
No reviewsBIP327,353: Update to Final and Proposed instead of Active
A BIP status of Active is only for Process BIPs. - BIP 327 should be Final, not Active. - BIP 353 has an open PR with test vector additions, should be Proposed.
No reviewsBIP353: Advance to Active
I think this can be advanced to Active as several projects have implemented support. BIP 353 has been implemented by Phoenix, Cake Wallet, Sparrow, and CLN. Additionally, some LDK-based and breez-sdk-based projects are working on support. cc: @TheBlueMatt
No reviewsBIPs 157, 158: update status to Final, add Requires header
Update status of BIPs 157 and 158 from Draft to Final. As described in https://github.com/bitcoin/bitcoin/blob/8ee8a951c205c5365f7557253b8fffc12e6e670c/doc/bips.md, BIPs 157 and 158 have been deployed since 2020: *Compact Block Filters for Light Clients can be indexed as of **v0.19.0** ([PR #14121](https://github.com/bitcoin/bitcoin/pull/14121)) and served to peers on the P2P network as of **v0.21.0** ([PR #16442](https://github.com/bitcoin/bitcoin/pull/16442)).* Also add `Requires` headers in
No reviewsBIP111: update status from Proposed to Final
The `NODE_BLOOM` service bit has been deployed in Bitcoin Core since https://github.com/bitcoin/bitcoin/pull/6579.
No reviewsBIP352: Add intermediate vector material for silent payments
This PR adds intermediate computation vectors to the BIP-352 reference implementation to improve development experience and code clarity. Changes - Updated reference.py to validate intermediate values during silent payment computations - Added comprehensive intermediate vector material to send_and_receive_test_vectors.json - Applied labels suggestion by @fifalodm to scanning Benefits - secp256k1 library no longer needs to handle silent payments specific code, intermediate values
No reviewsBIP388: fix variable name in from_descriptor() to prevent NameError
Replace unintended reference to local variable name `desc` with the correct method parameter `descriptor` in `from_descriptor`. The previous code raised a NameError when scanning operators because desc is not defined in that scope. This change aligns with the rest of the method, which consistently uses descriptor, and allows the example in main to run without error.
No reviewsbip54: fix off-by-one in creation date
BIP328: fix assignment in bytes_to_point function
Fix two chained assignments.
No reviewsBIP155: update status from Draft to Final
BIP155 was deployed in Bitcoin Core version v0.21.0, and has been in use for almost 5 years. New networks may be added to the reserved network IDs table, when they're needed, either in this BIP (seems fine) or in a new one. If BIP3 is activated, I think BIP155 would become Deployed.
No reviewsBIP2: license section fixups
- Update MIT license name per https://opensource.org/license/MIT and https://spdx.org/licenses/MIT - Fix up license URLs with 301 redirects
No reviewsBIP3: license section updates
Picks up #1931 and adds a commit to update the MIT license name. Changes: - Fix up license URLs with 301 redirects - Add MIT-0 License - Update MIT license name per https://opensource.org/license/MIT and https://spdx.org/licenses/MIT
No reviewsBIP85: replace Base64 by Base85 in PWD BASE85 section
Replace `Base64` by `Base85` encoder in the Pwd Base85 section, and use consistent capitalization.
No reviewsBIP345: fix broken links
- Updated MES16 paper link to crypto.news mirror - Fixed outdated bitcoin-inquisition repo link
No reviewsBIP352: remove unused import from reference.py
Remove from itertools import permutations which is not used anywhere Re-checked the codebase: no calls to permutations(...)
No reviewsBIP345: fix broken link
broken: https://github.com/instagibbs/bips/blob/ephemeral_anchor/bip-ephemeralanchors.mediawiki correct: https://github.com/instagibbs/bips/blob/527b007dbf5b9a89895017030183370e05468ae6/bip-ephemeralanchors.mediawiki
No reviewsBIP 70: fix link to payment request generator
Replaced outdated link to “Create Payment Request generator” in bip-0070.mediawiki: https://bitcoincore.org/~gavin/createpaymentrequest.php → https://developer.bitcoin.org/examples/payment_processing.html
No reviewsBIP374: remove debug print from test runner
Remove leftover debug print statement that was printing private keys(seckey_a_hex) to console during test execution. Improves test output readability and consistency.
No reviewsBIP3: Update License header format on activation
Addresses follow-up from https://github.com/bitcoin/bips/pull/1892#issuecomment-3157328596
No reviewsbip3: Switch to SPDX identifiers
This has been discussed in https://github.com/bitcoin/bips/pull/1819#pullrequestreview-2770098094/ See individual commit messages for further rationale. I can squash the commits if this will be cleaner. This doesn't touch all the "License" and "License-Code" headers yet. Let's first agree on the changes, and then we can implement them.
No reviewsBIP 345: Fix OP_VAULT_RECOVER specification for the recovery-sPK-hash
The recovery scriptPubKey needs to be prefixed with its CompactSize-encoded length when computing the sPK hash. I verified this by: - Checking the [functional tests](https://github.com/jamesob/bitcoin/commit/5e59c074703f0913db7ee004b99d086857d10ad6#diff-65a47d52759ba7800338bacb3005836bdc0f3962de356621e5c50887c85c4af8R1407-R1409), where `recovery_spk_tagged_hash()` is implemented using [`ser_string()`](https://github.com/bitcoin/bitcoin/blob/af3dee0b8d456a8aa9ade9c6e7f4283a90590eae/test/function
No reviewsBIP443: fix typo in the section "Transaction-wide initialization"
Itinitializes -> It initializes
No reviewsBIP352: add warning against omitting outputs
While implied by the specification, add an explicit warning that generated outputs MUST not be omitted from the final transaction.
No reviews[bip-0010]: remove repeated "the"
Location: In the ["Specification" section.](https://github.com/bitcoin/bips/blob/master/bip-0010.mediawiki#specification) Original: This is a specific naming convention to make sure it is not confused with **_the actual the transaction_** ID that it will have after it is broadcast... Correction: This is a specific naming convention to make sure it is not confused with **_the actual transaction_** ID that it will have after it is broadcast... Reason: The word "the" is repeated.
No reviewsFix dead link in BIP-70: Update Mozilla root store URL
## Changes - **File:** `bip-0070.mediawiki` - **Line 265:** Updated Mozilla root store URL - **From:** `http://www.mozilla.org/projects/security/certs/included/index.html` - **To:** `https://www.mozilla.org/about/governance/policies/security-group/certs/policy/`
No reviewsFix broken MES16.pdf link in BIP-347
Update broken fc16.ifca.ai link to working Internet Archive URL in bip-0347.mediawiki - Replace http://fc16.ifca.ai/bitcoin/papers/MES16.pdf with https://web.archive.org/web/20220203124718/https://fc16.ifca.ai/bitcoin/papers/MES16.pdf - Fixes reference to Bitcoin Covenants paper by M. Moser, I. Eyal, and E. G. Sirer - Ensures the vaults use case documentation remains accessible The original fc16.ifca.ai domain is no longer accessible, but the paper is preserved through the Internet Archive.
No reviewsBIP3: drop optional License Code header
based on @real-or-random's https://github.com/bitcoin/bips/pull/1892#issuecomment-3051961323. Also a couple of minor BIP3 touch-ups.
No reviewsBIP32: Use plural “bytes”
Typo fixup: Align the first field in the serialization table with the rest, which use plural “bytes” (e.g., “4 bytes: child number”) for consistency.
No reviewsBIP352: be explicit for the input_hash corner case
While this is statistically improbable, e.g., we don't yet know of a hash preimage that results in an output = 0 or greater than the curve order, we still want to be explicit on how to handle this (same as we do for the tweaks themselves).
No reviewsBIP77: fix links to Client/Directory interactions
BIP69: fix function name typo in example code
Corrected a typo in the output_cmp function where the non-existent function bytearray_cmp was called. Changed it to the correct function name bytearr_cmp to ensure proper output comparison and prevent runtime errors. This fix improves code reliability and consistency.
No reviewsBIP 77: Delimit fragment params with `-` instead of `+`
This PR addresses the concerns raised in #1885 with regards using `+` as a delimiter, by switching to `-`. Some URI libraries implement RFC 1866's (HTML 2.0) "keyword" delimitation in query parameters by decoding `+` as ` ` unconditionally, which necessitates kludgy workarounds. Additionally fragment parameters must now ordered lexicographically (instead of reverse), the motivation for a canonical ordering was to reduce implementation fingerprinting concerns, but the reverse lexicographical ord
No reviewsbip373: add hyperlinks to other BIPs
add hyperlinks to BIPs 327
No reviewsBIP-0388: Fix test vector
fix: descriptor in "Taproot wallet policy with sortedmulti_a and a miniscript leaf" test vector which incorrectly uses `@0` from keys info without key origin derivation
No reviewsBIP3: Address additional review
BIP3 got a bit more review from @RubenSomsen, @darosior, and @jonatack. Thanks! This PR addresses the review. Most of it related to minor phrasing improvements, typos, and added emphasis. I also added mention of the Version header and Changelog to the Backward Compatibility section which I had overlooked, and explain why I consider the headers "Superseded-by" and "Replaces" asymmetric, and only propose a new name for "Superseded-by" but retain "Replaces". **This PR includes a deletion and rea
No reviews[bip-390]: add hyperlinks to BIPs (327, 380, 389, 32)
BIP380: make specs consistent about hardened indicators
Me and my students noticed a discrepancy in the test vectors and specification regarding the allowed characters denoting hardened nodes. The [BIP380](https://github.com/bitcoin/bips/blob/master/bip-0380.mediawiki) specs allows all three `h`, `'` and `H`, in particular the specs read: > In the above specification, the hardened indicator `h` may be replaced with alternative hardened indicators of `H` or `'`. However, the following is then an **invalid** test vectors: > [deadbeef/0H/0H/0H]0260b
No reviewsUpdate bip-0321.mediawiki to remove duplicate address example
Removing duplicate address example that's exactly the same as above. @TheBlueMatt
No reviewsBIP 53: Disallow 64-byte transactions
This BIP makes 64 byte bitcoin transactions serialized without the witness consensus invalid Mailing list post: https://groups.google.com/g/bitcoindev/c/rf3QOlzg230/m/eOOC8pkOAgAJ Delving discussion: https://delvingbitcoin.org/t/great-consensus-cleanup-revival/710 Side note, wasn't sure how to best handle the 2-Bitcoin-Merkle.pdf as it isn't hosted anywhere easily accessible AFAICT? For now I just added it into the git repo. Lmk if you have other suggestions
No reviewsBIP21: clarify that example addresses are intentionally invalid
Clarify to readers that the addresses used in the examples are intentionally invalid to prevent accidental transactions.
No reviewsBIP374: Discrete Log Equality Proofs (DLEQ)
This BIP specifies a standard way to generate and verify DLEQ proofs. This is motivated by sending to silent payments in PSBTs. However, there are also other uses where DLEQs could be useful, so it would be good to have this BIP for others to reference. This is inspired by https://github.com/discreetlogcontracts/dlcspecs/blob/master/ECDSA-adaptor.md#proof-of-discrete-logarithm-equality, but is a little more specific. There is an implementation of that already at https://github.com/BlockstreamRe
No reviewsBIPs 77, 175, 443: various fixups
Collects various fixups from #1859, #1862, and #1863 with credit to the original commit authors.
No reviewsBIP 443: OP_CHECKCONTRACTVERIFY
Hi all, This is a draft for the formal specifications of the `OP_CHECKCONTRACTVERIFY` (`CCV`) opcode. `CCV` enables to build Script-based state machines that span across multiple transactions, by providing an ergonomic tool to commit to - and introspect - the Script and possibly some _data_ that is committed inside inputs or outputs. Related to this PR: - [Implementation in bitcoin-core](https://github.com/bitcoin/bitcoin/pull/32080) - [Post on delving bitcoin](https://delvingbitcoin.org/t/op
No reviewsHD Multisig derivation standard
This PR is a proposal for a new BIP to define a standard on m/48' derivation paths used in modern day hierarchical deterministic multi-sig wallets.
BIP77: remove redundant sentence line
BIP 99: update invalid link to hardfork-timewarp-0.11 branch
This PR updates the link to the experimental hardfork-timewarp-0.11 branch, which was a PoC for a TimeWarp hardfork fix.
No reviewsBIP69: fix link
Fixes an out-of-date link: before https://github.com/btcsuite/btcutil/blob/master/txsort/txsort.go after https://github.com/btcsuite/btcd/blob/master/btcutil/txsort/txsort.go
No reviewsBIP 300: Various improvements
BIP48: Partially revert recent changes, move to final
As discussed on https://github.com/bitcoin/bips/pull/1835#pullrequestreview-2837827946, the addition to P2TR was incompletely specified, and BIP48 should no longer be changed. Therefore, I propose to revert the changes, and to move BIP48 to final instead.
No reviewsBIP-99: fix footnotes and drop missing reference
BIP341: replace broken twitter link
The social media account linked to in BIP341 was deleted some time ago: https://twitter.com/pwuille/status/1108097835365339136 This pull proposes to replace the link with: https://web.archive.org/web/20220531184542/https://twitter.com/pwuille/status/1108085284862713856 Alex Waltz and I didn't find a web archive of the original tweet (see thread up to https://x.com/raw_avocado/status/1924610087034757158 yesterday) but this one looks like a good replacement -- h/t to Hunter Beast who found it
No reviewsbip-0331: correct size of version field in sendpackages
Since the version is denoted as uint64, the size should be 8 bytes.
No reviewsBIP177: Redefine Bitcoin’s Base Unit
This BIP proposes redefining the bitcoin unit of account to represent the protocol’s smallest indivisible unit as “1 bitcoin,” eliminating the need for decimal-based UI conventions. - Type: Informational - No changes to consensus rules or supply - Matches Bitcoin’s native integer representation - Includes multi-phase rollout recommendations Authored by: John Carvalho (@BitcoinErrorLog) Mailing list: https://groups.google.com/g/bitcoindev/c/YwF-djZi1Bo/m/nIkyuClEAgAJ
No reviewsBIP-372: Fix references and links formatting and minor typos
Fixed incorrect preposition in key tweaking explanation: - `multiplied on` → `multiplied by` - Clarified BIP-340 key serialization: - `appending '02'` → `appending '0x02'` - Removed unnecessary trailing comma in the list of output types - Removed erroneous semicolon after URL
No reviewsUpdate BIPs 300/301
The BIPs were over two years old. Also I noticed they were wordy and unclear. I shortened them and added better tables and figures to make them easier to read.
No reviewsBIP48: Add p2tr script type derivation
BIP48 currently defines script types only for p2wsh and p2sh-p2wsh, but not for the newer p2tr. This PR proposes defining the the script_type for p2tr as `3`, to provide a clear standard for the derivation to use in p2tr scripts.
No reviewsBIP-345: withdraw
This proposal has basically been replaced by #1793. See https://delvingbitcoin.org/t/withdrawing-op-vault-bip-345/1670 for rationale.
No reviewsBIP48: Add P2SH-P2WSH and P2TR mainnet examples
Follow-up to https://github.com/bitcoin/bips/pull/1835.
No reviewsBIP172: Define Bitcoin Subunits as Satoshis
Formally define the smallest subunit of a bitcoin as a "Satoshi"
No reviewsBIP 347: OP_CAT in Tapscript
This BIP defines OP_CAT a new tapscript opcode which allows the concatenation of two values on the stack. This opcode would be activated via a soft fork by redefining the opcode OP_SUCCESS126. See our implementation PR in bitcoin-inquisition: https://github.com/bitcoin-inquisition/bitcoin/pull/39
BIP 197: Update the invalid link
BIP 54: Consensus Cleanup
This is a BIP draft for a Consensus Cleanup soft fork. This proposal builds upon Matt Corallo's 2019 [proposal](https://github.com/TheBlueMatt/bips/blob/7f9670b643b7c943a0cc6d2197d3eabe661050c2/bip-XXXX.mediawiki), which i set to revive at the end of 2023. I eventually shared my research in a [Delving Bitcoin post](https://delvingbitcoin.org/t/great-consensus-cleanup-revival/710) in early 2024 (along with a [semi-private companion post](https://delvingbitcoin.org/t/worst-block-validation-time-i
BIP 154: fix link to cuckoo-profile.pdf
bip-0112: fix link to Deployable Lightning paper
BIP 119: fix link to MES16 paper
old has 404-error
No reviewsBIP 321: URI Scheme (Replace BIP 21 with a new BIP containing information about more modern usage of it)
As Bitcoin has grown, the introduction of new address formats describing new forms of payment instructions has become increasingly fraught with compatibility issues. Not only does there exist traditional on-chain addresses, but some recipients wish to receive Lightning (when the sender supports it) or newer formats such as Silent Payments. This has led to increasing use of the BIP 21 query parameters to encode further optional payment instructions. Looking forward, as new payment instructions
BTCPay Server and NBitcoin supporting BIP388
BIP-00{43,49,84}: move to Standards Track + BIP-0044: mark as Final
I just noticed inconsistency between BIPs dealing with the account structures: - BIP-00{43,49,84} were Informational, while BIP-00{44,86} are Standards Track => this PR changes the former to the Standards Track too - BIP-0044 was not marked as Final where BIP-00{43,49,84,86} are => let's mark BIP-0044 as Final too
No reviewsadded 'btc_hd_wallet' amongst implementations in bip32, bip39, bip85
I would like to add my HD (paper) wallet implementation to BIP{32,39,85}. It is written as a follow up to reading @jimmysong great book - Programming Bitcoin. I had some issues trying to figure out what is going on just by looking on some other python implementations so I decided to write my own as a part of learning process. It should be easy to read and has a heavy load of unit tests. I hope it will help some novice bitcoiners to make their learning curve less steep.
No reviewsBIP-0374: fix incorrect bit index and modernize CSV reader usage in test vector scripts
- **Corrected a logic bug in `gen_test_vectors.py`** Previously, the message tampering logic mistakenly used the proof damage index (`proof_damage_pos`) instead of the correct message index (`msg_damage_pos`). This could result in ineffective or misleading bit-flip tests. Now fixed to use the correct index for tampering the message. - **Modernized usage of `csv.reader` in `run_test_vectors.py`** Replaced the outdated `reader.__next__()` with the idiomatic and Python 3–safe `next(rea
No reviewsBIP374: add subtraction operator for GE class
This commit implements the subtraction operator (__sub__) for the GE (Group Element) class in the secp256k1.py file as requested in the TODO comment in reference.py. The implementation is straightforward, leveraging the existing __neg__ method to define subtraction as addition with the negated element: self + (-a). After implementing the operator, the code in reference.py was simplified by replacing expressions like: s * G + (-e * A) with s * G - e * A This makes the code more readable and di
No reviewsAdd BIP 353: DNS Payment Instructions
User behavior has clearly indicated a strong demand for the resolution of human-readable names into payment instructions. This BIP defines a protocol to do so using only the DNS, providing for the ability to query such resolutions privately, while utilizing DNSSEC to provide compact and simple to verify proofs of mappings. I'd like to hereby request a BIP number assignment. What is the current approach to do so - since the mailing list has died, is a post on delving bitcoin the appropriate plac
No reviewsBIPs 78 and 329: minor grammar and typo fix-ups
This pull request corrects several grammatical errors and typos in BIP-0329.mediawiki and BIP-0078.mediawiki files. # Changes in BIP-0329.mediawiki: Fixed incorrect word "independant" to "independent" in line 164: - * <tt>keypath</tt>: The data needed to build full descriptor down to the specific address. This extends <tt>origin</tt> with the final two components that are unhardened (in the typical case, assuming BIP-84). Provide string <tt>/1/123</tt> for <tt>wpkh([d34db33f/84'/0'/0'/1/123
No reviewsBIP3: Updated BIP Process
This _Bitcoin Improvement Proposal (BIP)_ proposes new guidelines for the preparation of BIPs and policies relating to the publication of BIPs. If adopted, it would replace [BIP 2](bip-0002.mediawiki). ---- From the BIP: ### Changes from BIP 2 #### Workflow - Status field values are reduced from nine to four: - Deferred, Obsolete, Rejected, Replaced, and Withdrawn are gathered up into Closed. - Final and Active are collapsed into Deployed. - Proposed is renamed to Complete. - The rem
BIP03: fix typos
BIP75: fix typo
This PR fixes a typo.
No reviewsBIP-0015 and BIP-0020: fix typos and improve text clarity
This PR makes the following changes: 1. BIP-0015: Fixes typo in the word "that" and improves readability of the address example explanation 2. BIP-0020: Improves message text clarity by adding "is" in the QR code scanning message These are minor text improvements that don't change the technical content of the BIPs but make them more readable and grammatically correct.
No reviewsBIP381-BIP382: minor grammar fixups
BIP-0374: fix typo
s/compution/computation/
No reviewsBIP-0324: fix typo
`decypt` to `decrypt`
No reviewsBIP352: minor docstring fixups
BIP340: fix url to test-vectors.py
Follow-up to #1807.
No reviewsbip340: Change license of code and test vectors
See https://github.com/bitcoin/bips/commits/master/bip-0340 for a list of contributors. I have obtained permission to do this change from all contributors in private. Nevertheless, it would be good to get an ACK from every contributor in order to have publicly available evidence. - [x] @sipa - [x] @jonasnick - [x] @theStack - [x] @ysangkok I haven't contacted @Sajjon and @satsie, whose contributions constitute of fixing not more than two typos and are thus below the threshold of originalit
No reviewsBIP328: minor docstring fixups
2 doc-only fixups.
No reviewsBIP380: minor grammar fixups
Adding a few minor changes after having read the specs a couple of times.
No reviewsBIP-3: update dead link in `bip-0003.md`
Hi! I fixed broken links in `bip-0003.md`. The issue was caused by incorrect letter casing in file references (`BIP-0002.mediawiki` → `bip-0002.mediawiki` and `BIP-0123.mediawiki` → `bip-0123.mediawiki`). The links have been updated to match the correct filenames, ensuring proper navigation.
No reviewsbip3: a couple nits
A couple of tiny changes as i was reading the BIP from top to bottom. See commit messages for details.
No reviewsBIP3: Move to Proposed
I was [finished with my planned work](https://gnusha.org/pi/bitcoindev/25449597-c5ed-42c5-8ac1-054feec8ad88@murch.one/) on 2025-02-03, and after a few more rounds of review, BIP3 got merged on 2025-02-20. I have not received any additional review comments or change suggestions in over three weeks, so it seems to me that this proposal may be complete and ready for adoption, although amendments are of course still possible if anyone has further review, concerns, or suggestions. Please feel free t
No reviewsBIP69: typo fixup in bip-0069_examples.py
Typo fixup in `bip-0069/bip-0069_examples.py`: `disinct` -> `distinct`
No reviewsBIPs 67 and 301: fix links
The original master file has been changed, and the line numbers referenced by the original URL are no longer accurate. Therefore, a fixed permanent link is used to replace it. The purpose of adopting a permanent link is to prevent the line numbers originally pointed to by the URL from becoming inaccurate again when further changes are made to the master branch.
No reviewsBIP379: add missing hexadecimal notations
Replace `SIZE <20> EQUALVERIFY` with `SIZE 32 EQUALVERIFY` for `sha256(h)`, `hash256(h)`, `ripemd160(h)`, and `hash160(h)`. `sha256`/`hash256` produce 32 bytes, not 20, so the original size check is incorrect.
No reviewsBIP32 amendment: base58chk-encoded extended keys are always 111 chars
*Replaces https://github.com/bitcoin/bips/pull/727 with with cherry-picked 81644ddfa131bb0e387ead2cc309ca18e57542b1; note that BIP32 has status `Final`. The description below is copied from that PR.* Base58chk-encoded extended keys are always 111 characters long. Amend wording of BIP32 accordingly. **Diff:** -This results in a Base58-encoded string of up to 112 characters. +This results in a Base58-encoded string of exactly 111 characters. **Proof:** Version bytes: `0x0488b21e` (“xpub”), `0x
No reviewsBIP158: minor error message fixup in `gentestvectors.go`
Fix up error message: - `"Couldn't get block hash"` → `"Couldn't get block data"` for better clarity Also minor grammar edit in code comment: - `"checks for filter size of DefaultP"` → `"checks the filter size of DefaultP"`
No reviews[BIP-119] language overhaul & cleanup
Reject BIP-0060 (three years inactivity)
According to BIP-0002, any person can request this.
No reviewsbip-0068: current pdf path links
bip-0375.mediawiki fix duplicate
`the the ` - ` the `
No reviewsBIP-0094: reformat specification section for clarity and readability
In this commit, we restructure the specification section to make the consensus rules clearer and more scannable. The previous section interleaved commentary and historical tidbits with the motivation and new rules, making it difficult to quickly identify the exact rule changes. A high level over view the intended changes is as follows: - Numbers each rule for easier reference - Adds explicit "Rule Specification" sections - Uses structured lists with MUST statements following RFC/IETF convention
No reviewsFix links in BIP300
bip-0348: correct BIP number in referencing unknown key types
Unknown key types are defined as part of the Tapscript opcodes' semantics, in bip-0342. Not bip-0341.
No reviewsBIP119 fix grammatical typos
BIP119: appease typos linter
The linter is raising with the following (e.g., in #1780 and #1783) that is resolved by this patch. ```bash ~/bitcoin/bips$ typos error: `TYP` should be `TYPO` --> ./bip-0119.mediawiki:594:73 | 594 | is set to CTVHASH_ALL. Other programs could be added similar to SIGHASH_TYPEs. ```
No reviewsBIP94 PR1781 editorial fixups
Addresses https://github.com/bitcoin/bips/pull/1781#discussion_r1985677753 ("Parameters"), writes "Testnet 4" in the same manner as the BIP author, and removes an extra EOL space.
No reviewsBIP-0094: add default p2p port for testnet4
BIP94 Testnet 4
A written specification for Testnet 4 has been requested [in the PR discussion](https://github.com/bitcoin/bitcoin/pull/29775) and a BIP seems to be the right place for this. Given the active discussion in the PR I think it's best if this is kept open until the PR is merged. I will keep it up-to-date and track the current status of the PR.
No reviewsBIP374: Add message to rand computation
Include the message in the rand computation to avoid leaking `a` as described [here](https://github.com/bitcoin/bips/pull/1689#discussion_r1939790470).
No reviewsBIP159 updates
A few clarifications following a discussion with BIP author Jonas Schnelli yesterday and then thanks to review feedback from both Jonas and Murch. These are compatible with the reference implementation in the BIP and with the current implementation in Bitcoin Core. It is worthwhile to read the discussion in reference implementation https://github.com/bitcoin/bitcoin/pull/10387 (particularly https://github.com/bitcoin/bitcoin/pull/10387#discussion_r156861038).
No reviewsBIP329: add optional data fields, fix a JSON type
If the goal is solely to move labels between cooperating wallets, then previously defined values are the absolute minimum needed. However, wallet data exports can serve other purposes and many values associated with addresses, transactions and outputs are already on-hand for the wallet generating the export, and yet would be hard or impossible for importing tools to reconstruct. This PR proposes a bunch of optional fields that could be useful to users of this data. All are optional.
No reviewsBIP329: PR 1750 follow-up edits
@jonatack Following up on #1750, this PR adds the minor edits you suggested previously which @doc-hex approved, along with another small edit to clarify the address heights specification to align with transaction height.
No reviewsBIP75: fix BIP70 extensions url and clarify text
BIP 94: Move status to Final
BIP 94 (Testnet 4) is deployed and used in Bitcoin Core and multiple other projects. The status can be updated to Final.
No reviewsBIP3: Address follow-ups from #1712
- Clarifies that a BIP has to be on-topic to be assigned a number - Accept phrasing, and punctuation touch-ups from @jonatack’s last review on #1712
No reviewsBIP119: Fix `OP_EQUALVERIFY` typo
BIP374: Fix link and formatting in reference section
BIP39: add license and copyright section
These are required for legal use, and also per BIP-2, and they avoid user confusion as seen in https://github.com/bitcoin/bips/pull/1395#issuecomment-2393915807. Choice of MIT license per BIP author feedback in https://github.com/bitcoin/bips/pull/1395#issuecomment-2393930721. The license omission was likely an oversight. BIP-39 predates BIP-2 by 2-3 years. BIP-1 (in force at the time, since superseded by BIP-2) did require a copyright or public domain section.
No reviewsBIP374: add test vectors for secp256k1 generator point
Add successful test vectors for: - secp256k1's generator point - optional message
No reviewsBIP388: Fix incorrect use of return for raising exception
`return` was being used incorrectly to handle an exception. Instead of returning the exception, it should be raised using `raise`.
No reviewsBIP85: Clarify spec, correct test vectors, add Portuguese language code, add dice application
Summary of changes: * Clarify drng_reader.read is a first-class function (not an evaluation) * Clarify endianness * Clarify possibility for TPRV keys * Add new reference implementation in Python * Clarify that HD-Seed-WIF uses most significant bits * Add language code for Portuguese under BIP-32 application * Correct entropy for BASE64 test vector * Correct byte order and output for XPRV test vector * Add new champion Unit tests for all substantive changes can be found in the reference impleme
No reviewsBIP-85: Add language code & dice app, TPRV guidance, warn on BIP-32 divergence, grammar & clarity
Reloading this PR with minimal, backward-compatible changes. * I believe there is consensus on the need to add a new champion [here](https://github.com/bitcoin/bips/pull/1600#issuecomment-2394691135). * The reason for adding a new reference implementation is to support Python 3.x with a thoroughly unit-tested implementation. I was unable to get the original Python 2.x reference implementation to run. * [ ] If desired I can email bitcoin dev for more thoughts on these changes
No reviewsBIP85: update status to Final
Moving this BIP to final stage as this is widely deployed
No reviewsBIP375: Sending Silent Payments in PSBTs
This BIP adds support for sending silent payments using PSBTs. If there are multiple entities handling the PSBT that do not have access to some input private keys, a DLEQ proof by the signer may be added for other entities to verify the corresponding ECDH shares used to derive the output scripts were generated correctly. This is specified in BIP374. For the common case of a single entity that has access to all private keys, the DLEQ proof generation is unnecessary. Spending support is trivial
No reviewsBIP345: fix OP_SUCCESS188 hex value
`OP_SUCCESS188` is `0xbc`, not `0xbb`.
No reviewsBIP78: Allow mixed inputs Redux
This picks up and supersedes https://github.com/bitcoin/bips/pull/1244/ that - separates concerns into individual commits - corrects fee verification for a proposal having mixed script inputs while ensuring additional fee indeed paid for input I know @kixunil is extremely busy to update these days, so I took the liberty to organize the changes we've discussed according to your wants here. @NicolasDorier I hope these changes satisfy your desire for them to be small and problem-focused while mai
No reviewsBIP125: Update description of BIPs 68 and 112
Given that both BIPs are now final, calling them drafts, seem very stale.
No reviewsFix BIP 78 & BIP 174 Conflict: Keep input utxo data through input finalization
According to the psbt Input Finalizer spec "All other data except the UTXO and unknown fields in the input key-value map should be cleared from the PSBT. The UTXO should be kept to allow Transaction Extractors to verify the final network serialized transaction." In Bip78, the receiver clears this data after it finalizes its inputs, even if the utxo belongs to the sender which will need that data. I ran into a problem where LND's FinalizePsbt gRPC fails when this utxo data is missing. I see no g
No reviewsBIP113: Median Past LockTime
Following the announcement on the ML (https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-August/010348.html). TODO: - [x] BIP number assignment (113) - [ ] Link to discussions between @gmaxwell and @luke-jr where this change was first described
No reviewsBIP372, BIP381: editorial fixups
Merges and improves on the editorial spelling/grammar suggestions in https://github.com/bitcoin/bips/pull/1720. Closes https://github.com/bitcoin/bips/pull/1720.
No reviewsBIP341: Explain the 64-byte signature format
Picks up #1330 that has been awaiting author update since April 2024, and addresses the BIP author suggestion in https://github.com/bitcoin/bips/pull/1330#issuecomment-2080132660.
No reviewsBIP158: fix btcutil gcs broken link.
https://github.com/btcsuite/btcutil/blob/master/gcs leads to a broken link. I'm assuming the correct replacement is at https://github.com/btcsuite/btcd/tree/master/btcutil/gcs since `btcutil` is a sub-package in `btcd`, as stated in https://github.com/btcsuite/btcutil/tree/master?tab=readme-ov-file
No reviewsBIP374: update reference.py and secp256k1.py to be executable
by adding to each a python shebang and changing their file permissions from 644 to 755, as mentioned in https://github.com/bitcoin/bips/pull/1734#issuecomment-2564476828. These files don't need to be executable in order to run `gen_test_vectors.py` and `run_test_vectors.py` but it is helpful to allow developers to invoke them directly. Before: ```bash $ ./reference.py zsh: permission denied: ./reference.py ``` After: ```bash $ ./reference.py ```
No reviewsBIP-374: add generated test vector .csv files
Even though the test vector generation script is available for BIP-374, I think it's generally a good practice to store the generated test vectors available in the BIP repository as well, so that everyone can verify that it yields deterministic results. In case refactoring / bugfix changes are needed in the test generation script in the future (e.g. https://github.com/bitcoin/bips/pull/1729 for a recent example), one can check that the results are still equal. Can be tested by: ``` $ cd ./bip-0
No reviewsbip-0374: fix challenge generation, use correct generator point
Both generating and verifying a proof allows for specifying a custom generator point G. But that custom generator point was not passed into the dleq_challenge function, resulting in the default (secp256k1) generator point to be used. This lead to the test vectors being incorrect. Noticed this while re-implementing DLEQ proof generation and verification in Golang.
No reviewsBIP-340: fix `lift_x` calls in test vector generation script
The `lift_x` function in the BIP and the reference implementation expect an integer to be passed rather than a byte array. Can be tested with: ``` $ python3 test-vectors.py > expected.csv $ diff test-vectors.csv expected.csv ``` On master, the first call fails with ``` Traceback (most recent call last): File "/home/thestack/bips/bip-0340/test-vectors.py", line 267, in <module> vector0(), ^^^^^^^^^ File "/home/thestack/bips/bip-0340/test-vectors.py", line 30, in vector0 pubkey_po
No reviews[BIP-0349] OP_INTERNALKEY add credit section
[BIP-0349] Add Re-Keying explanation to OP_INTERNALKEY
Update bip-0370.mediawiki
Minor grammar and punctuation errors
No reviews[BIP-373] Slight rewrite of evenness byte footnote for clarity
Per discussion with @jonatack here: https://github.com/bitcoin/bips/pull/1705#discussion_r1879264639
No reviewsBIP39: fix word in Italian wordlist special considerations
Corrected terminology: "double vocals" → "double vowels" ### Explanation of Change: 1. The rule being described refers to spelling and letter patterns, specifically when two vowel letters appear together. 2. The term "vowels" is the proper linguistic term for such letters, while "vocals" is incorrect in this context. 3. The example "lineetta" demonstrates a double vowel pattern ('ee').
No reviewsBIP 348: OP_CHECKSIGFROMSTACK
This BIP is based on the BCH OP_CHECKDATASIG work, as well as postings from the bitcoin dev mailing list in [this thread](https://www.mail-archive.com/bitcoin-dev@lists.linuxfoundation.org/msg10211.html). Some differences appear due to the activation of bips 340, 341, and 342 (taproot) since those were developed. OP_CHECKSIGFROMSTACK is an OP_SUCCESS upgrade available only in BIP342 tapscript.
No reviewsFix typos in BIPs 87/88/98
This pull request addresses several typographical errors found in the BIP documents: - Corrected "shemes" to "schemes" in BIP-0088. - Fixed "publicitly" to "publicly" in BIP-0088. - Replaced "unambigouos" with "unambiguous" in BIP-0088. - Corrected "message paddding" to "message padding" in BIP-0098. - Adjusted "inbetween" to "in between" in BIP-0087. These changes ensure the clarity and accuracy of the documentation.
No reviewsBIPs 348 and 379: spelling fixups
funcationality - functionality composabe - composable
No reviewsBIP348: trivial text correction
Fix wrong test vector in BIP-388. Sometimes /<0;1>/* is missing. Sometimes it is incorrectly written as <0,1>.
I found that test vectors in BIP-388 contain errors regarding multipath descriptor derivation. Also, fixed invalid newline in multipath descriptor derivation doc.
No reviewsBIP157 grammar fixup: add missing word
Give better clarity for Client Operation
No reviewsBIP39: update status from Proposed to Final
* also widely deployed
No reviewsBIP125: update status to Final
Discussing #1692 with @luke-jr, realized that we may not have followed BIP2 process when updating BIP125 from Proposed to Obsolete. Per BIP2: "A Proposed BIP may progress to Final only when specific criteria reflecting real-world adoption has occurred." "When a Final BIP is no longer relevant, its status may be changed to Replaced or Obsolete (which is equivalent to Replaced). This change must also be objectively verifiable and/or discussed." BIP125 saw real-world adoption, so it would make
No reviewsFix link in BIP-84
Fix link to considerations section in BIP-84
No reviewsBIP340: minor grammar edits
In order for this section to fully be grasped by readers, minor grammatical errors need to be fixed, especially when explaining the "Nonce exfiltration protection" and "Precomputed public key data"
No reviewsAdd BIP 349: OP_INTERNALKEY
OP_INTERNALKEY is a new BIP342 tapscript only opcode (upgraded using OP_SUCCESS semantics) that takes bytes 1-32 (0-index, inclusive) from the BIP341 taproot control block and places them on the stack. This BIP describes that behavior.
No reviewsBIP 345: Remove Anthony Towns as coauthor.
I don't want the responsibility of championing this proposal (per BIP 2), so would prefer to be removed as co-author.
No reviewsBIP-85: formatting and changelog updates, and add word cases for application 39'
* Address lingering feedback from #1679 * Complete words table for application 39' (I could bump to semver 1.4.0. for this but that seems excessive) * Reorder sections to be more standard * Convert discussion to standard footnote
No reviewsBIP327: update status from Draft to Active
Following the merge of https://github.com/bitcoin-core/secp256k1/pull/1479, it looks like the status of BIP327 "MuSig2 for BIP340-compatible Multi-Signatures" can be updated from Draft to Active.
No reviewsBIP390: Clarify that musig cannot be used in top-level pk() or pkh()
As it is valid to use `pk(musig(...))` or `pkh(musig(...))` inside taproot scripts, I think the invalid examples might otherwise be misinterpreted.
No reviewsBIP373: Clarify where keys in MuSig fields may appear in the Taproot output
- The aggregate pubkey in `PSBT_{IN,OUT}_MUSIG2_PARTICIPANT_PUBKEYS` does not have to appear anywhere in the Taproot output. - The plain pubkeys in `PSBT_IN_MUSIG2_PUB_NONCE` and `PSBT_IN_MUSIG2_PARTIAL_SIG` must be either the output pubkey, or appears in a script, and not the internal key.
No reviewsBIP2: replace legacy http links with https
Only change is `s/http/https/` for these URLs.
No reviewsupdate to latest BIP-0039 draft
BIP125: update status of Opt-in Full RBF Signaling to Obsolete
BIP125 has been in Accepted / Proposed status since at least 8 years and could use a status update. At the same time, the network appears to have largely adopted full RBF by default. See https://github.com/bitcoin/bitcoin/pull/30493 and https://github.com/bitcoin/bitcoin/pull/30592. Perhaps this BIP should be updated from Proposed to one of Final, Replaced, or Obsolete. Update: Obsolete chosen, per author feedback.
No reviewsFix BIP-99 Formatting
This extra space appears to unintentionally trigger the markup rules for preformatted text.
No reviewsBIP39 changes
Hello, BIP39 is already implemented in Trezor, Multibit HD and bitcoinj 0.11. Other projects also agreed to eventually implement it (Electrum). Please merge the latest version of BIP39 and change status from Draft to Accepted. Thanks, Marek
No reviews328, 390, 373: BIPs for MuSig2 derivation, descriptors, and PSBT fields
This PR contains 3 proposed BIPs, the main contents of which were sent to the bitcoin-dev mailing list in October. There have been a few changes, notably the addition of a new BIP for the derivation methodology which was split from the descriptors BIP. I've also changed the PSBT BIP to use 33 byte plain aggregate pubkeys rather than xonly.
No reviewsBIP-85: Correct bad test vector for Base64
References: - https://github.com/bitcoin/bips/pull/1679#pullrequestreview-2350690946 - https://github.com/bitcoin/bips/commit/3f4a0a17bcadaf1cd5e00d6065417979a4d2ff1d#r147926790
No reviewsBIP300: fix up markup in comment header
this section is (rightly) commented out, but it still (wrongly) shows up at the table of contents in the beginning, this should fix it
No reviewsBIP158: fix up code comment typo in gentestvectors.go
Corrected wording in comments
No reviewsBIP119: remove James O'Beirne as co-author
I discussed removal with @jamesob at the beginning of the summer, as his focus is elsewhere these days. Original context on his addition is here https://github.com/bitcoin/bips/pull/1482. Since the BIP editor community is more active these days, I'd like to see the addition of an editors/champion/draft-team metadata, and would love to add a volunteer or two to the BIP should it need any edits for that role.
No reviewsRevert "BIP85: Clarify spec, correct test vectors, add Portuguese language code, add dice application"
Revert bitcoin/bips#1600, as it contained a breaking change. The desired changes from that pull can be proposed separately.
No reviewsBIP329: Add optional key origin property and expand truncation note
Based on feedback received after BIP329 was initially published, this adds the following: - An optional `origin` property containing key origin information which can be used to to disambiguate labels from different wallets contained in the same export - A note on warning users if truncation is applied, along with a suggested maximum label length
No reviewsBIP 300/301: Link to latest code -- also shorter/better explanations
I've developed a much cleaner/safer/better way of doing BIP-300/301, and updated the BIP accordingly. While doing that, I have updated the BIP text to (hopefully) clarify a number of points/questions that were raised over the last 12 months.
No reviewsBIP341 test vectors
This adds a set of wallet-focused BIP341 test vectors covering: * scriptPubKey computation (from internal key & script tree) * control block construction (for script path spending) * key path spending (sighash computation / deterministic signing) It is primarily aimed at constructions that are useful right now, and excludes for example signing with annex for that reason. BIP342 semantics are not covered directly, as the scope of that is extremely wide, but control block computation is, plus mos
No reviewsAdd a PSBT per-output field for BIP 353 DNSSEC Proofs
When using BIP 353 for on-chain addresses (incl silent payments), it is useful to be able to include DNSSEC proof information in outputs of a PSBT, which we enable here by defining a standard field for it.
No reviewsBIP-0386: Fix uncompressed private key test vector
Base58 in the WIF format is case sensitive. The following Test Vector will result in an error indicating the WIF version is invalid, regardless of the compression state of the public key. ``` 5kyzdueo39z3fprtux2qbbwgnnp5ztd7yyr2sc1j299sbcnwjss ``` The following is probably what was intended: ``` 5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss ```
No reviews388 - Add more motivation, and links to miniscript BIP
One important aspect of wallet policies is how they help preventing pubkey reuse. I think it's worth explaining it in some detail in the motivation section. Also adding links to BIP-379, and fixing a nit. Strictly speaking, one might want to formally specify all the miniscript fragments in the grammar specification; however, that would require listing all the miniscript fragments, which doesn't seem useful. As the grammar for miniscript rules are somewhat obvious, I think a simple link to BIP-
No reviewsBIP 2: Allow editors to fix typos
Please see https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-September/015065.html
No reviewsbip-0322: add another valid sig vector not to confuse
Following [this discussion](https://github.com/bitcoin/bitcoin/pull/24058/files#r872561862), add another valid sig vector not to confuse developer. It has been misleading some developers, as they think their implementation is wrong even if it's right. This test vector is also included in ongoing implementation of BIP322(PR is closed but seems like still in development [here](https://github.com/luke-jr/bitcoin/commit/f2f4637b16cd956e5923c05154a5eeaf1801ef45))
No reviewsRevert "Change BIP 94 timewarp delta to 7200 seconds"
This reverts commit 0c2a2172f76d05ecfdf55fed5650cc3ebaddb34a. See https://github.com/bitcoin/bitcoin/pull/30647#issuecomment-2289038179 for context.
No reviewsBIP94: Change timewarp delta to 7200 seconds
This aligns the BIP with the Bitcoin Core pull request and sets the allowed delta between the first block of the new difficulty period and the previous block to 7200 seconds (2 hours) instead of 600 seconds. See also the discussion in the PR: https://github.com/bitcoin/bitcoin/pull/29775#discussion_r1704428831
No reviewsAdd OP_VAULT (BIP 345)
Pairs with the draft implementation in https://github.com/bitcoin-inquisition/bitcoin/pull/21.
No reviewsBIP-0094: Fix typo
"block hex" -> "coinbase hex"
No reviewsFix typo in bip-0065
BIP 324: fix python aad in complete_handshake
The aad shouldn't include the garbage terminator. This tripped me up during implementation even though the text says it shouldn't be included.
No reviewsRemove trailing whitespace from all BIPs
introduce BIP-0043 and BIP-0044
BIP-0043 Purpose Field for Deterministic Wallets BIP-0044 Multi-Account Hierarchy for Deterministic Wallets
No reviewsbip327: minor fixes
I made some minor corrections, which I believe are beneficial. Please let me know if any of them are incorrect or need modification. Changes: 1. An error test vector doesn’t specify the `InvalidContributionError` type 2. In *DeterministicSign*, use `GetXonlyPubkey` instead of `GetPubkey` (doesn’t exist) 3. The `key_agg_and_tweak` fn doesn’t specify the return type 4. In `partial_sig_verify_internal`, the pubkey arg type should be `PlainPk` rather than `bytes` 5. Remove unnecessary `enumerate()`
No reviewsBIP46 clarify witness
In BIP46, the witness in the address derivation section states `<signature> <pubkey>`, which is incorrect. It should say `<signature> <witnessScript>` as specified for P2WSH in [BIP141](https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#user-content-P2WSH).
No reviewsBIP150: Deferred
Mark BIP150 as Deferred. More robust and private protocols have been drafted and need to be formalized into a BIP (see https://github.com/sipa/writeups/tree/ea9a3329fd33cc2c50e7ea65920e885d9caa454a/private-authentication-protocols for an example)
No reviewsbip353: concatenate strings in TXT record
URIs longer than 255 characters will be encoded in a TXT record as more than one string. [Some](https://dns.google/resolve?name=matt.user._bitcoin-payment.satsto.me&type=TXT) DNS resolvers handle concatenation automatically but [not all.](https://easyhandshake.com:8053/dns-query?name=matt.user._bitcoin-payment.satsto.me.&type=TXT) Make this explicit for the implementer. Also tidy up formatting a bit in the example section.
No reviewsBIP431: Opt In Topologically Restricted Until Confirmation Transactions For More Robust Fee-bumping
This is a BIP for Topologically Restricted Until Confirmation (TRUC) Transactions. It's also called "v3 transaction policy" since the marker is `nVersion=3`. A specification is useful for coordination between node impls that want to implement the same policy and applications that want to use it. For those that are not interested in the details of v3 policy, this also serves as a writeup of the specific pinning problems we aim to address. There has been discussion of using this in other protocol
BIP-32: Minor grammar fixes
Very small grammar fix of "keys" to "key." I checked across all the currently open PRs related to BIP-32 (#293, #575, #576, #695, #785, #885), and I don't think any of them have suggested this change yet.
No reviewsbip-0046: Address Scheme for Timelocked Fidelity Bonds
This is a continuation of @chris-belcher's [PR#1341 titled "Derivation scheme for timelocked address fidelity bond based accounts"](https://github.com/bitcoin/bips/pull/1341), as Chris will _quite possibly_ not be able to progress this any further. Please see comments in the PR, especially https://github.com/bitcoin/bips/pull/1341#issuecomment-2112742401: > It will probably be the easiest to open a new PR that supersedes this one. ##### TBD (from https://github.com/bitcoin/bips/pull/1341#pullr
No reviewsbip353: improve ₿-prefix instructions
I was very confused when reading the ₿-prefix instruction for BIP353. Others have been confused as well: * https://github.com/ACINQ/phoenix/issues/588 This PR reorders the sentences and slightly rewords them. Because the rationale comes _after_ these instructions, it's important to first point out the main aim: `₿user@example.com` should be the default rendering, it's not just some optional alternative format. I moved the bit about external (hardware) wallets down. I'm unconvinced the ₿-pre
No reviewsBIP352: Update appendix
Numbers from the appendix were slightly innaccurate and out of date. Update to clarify unspent UTXOs always refers to non-dust UTXOs and update the numbers to reflect current usage of taproot (Jan 2023 to July 2024). Considering the appendix is purely informational and the corrections here are minor, I've opted to not add a changelog entry.
No reviewsMention that BIP350 proposes to reduce the scope of BIP173 to Native Segwit v0
This is a follow-up to https://github.com/bitcoin/bips/pull/945 to reduce the scope of BIP173 to native segwit v0. I expect that you may have feedback about the phrasing, @sipa.
No reviews380-387: Mark basic descriptor BIPs as final
The basic descriptors described in BIPs 380 -387 have been implemented by multiple software and should be marked as Final.
No reviewsMove BIP 339 to Final
This is in active use on the p2p network.
No reviewsMove BIP 130 to Final
This in active use on the p2p network.
No reviewsMark BIP324 as final
It is actively used on the P2P network.
No reviewsMove BIP 338 to Withdrawn
The PR implementing this BIP was never merged into Bitcoin Core, in favor of an alternative approach.
No reviewsBIP 388: Wallet Policies for Descriptor Wallets
Initial version posted to [bitcoin-dev in May](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-May/020423.html). Wallet policies are implemented in the [Ledger bitcoin app](https://github.com/LedgerHQ/app-bitcoin-new) (since version 2.1.0). The following PR experimenting with an HWI integration might provide more context and an end-to-end demo: - https://github.com/bitcoin-core/HWI/pull/647
[BIP-119] Clarify that policy is not validity + what a covenant is.
@luke-jr these are intended to address your nits on the mailing lists; will work on the more detailed responses later.
No reviewsBIP78: spelling and grammar updates
This PR proposes a number of spelling and grammar updates to BIP78. Nothing here should change the actual content of the BIP, though I'm new to Payjoin and would appreciate a sanity check :) cc the BIP champion, @NicolasDorier
No reviewsBIP-352: generate `input_hash` after summing up keys (simplification)
While working on the sender side equivalent of #1620 I noticed that the current flow of input hash generation and key summing is a bit redundant and potentially confusing. For both sender and receiver, generating the input hash is currently listed as the first step: https://github.com/bitcoin/bips/blob/85cda4e225b4d5fd7aff403f69d827f23f6afbbc/bip-0352.mediawiki?plain=1#L302-L304 https://github.com/bitcoin/bips/blob/85cda4e225b4d5fd7aff403f69d827f23f6afbbc/bip-0352.mediawiki?plain=1#L336-L338
No reviewsBIP-352: use own ripemd160 for reference implementation
On some operating systems, Python doesn't provide the expected ripemd160 implementation anymore, so the reference implementation fails to start. E.g. in Ubuntu 22.04: ``` $ ./reference.py send_and_receive_test_vectors.json Simple send: two inputs Traceback (most recent call last): File "/usr/lib/python3.10/hashlib.py", line 160, in __hash_new return _hashlib.new(name, data, **kwargs) ValueError: [digital envelope routines] unsupported During handling of the above exception, another excep
No reviewsbip-0327: Remove obsolete paragraph
I believe this paragraph should have been removed as part of https://github.com/jonasnick/bips/commit/263a765a77e20efe883ed3b28dc155a0d8c7d61a. Crazy that we had overlooked this for so long.
No reviewsBIP352: Improve `input_hash` wording
Since https://github.com/bitcoin/bips/pull/1622, it makes more sense to define input_hash inline, vs having its own section. Also remove the wording about txid and vout, since this is already defined in the specification.
No reviewsBIP39: fix grammar in wordlists doc
Rectify typographical inaccuracies.
No reviewsBIP143: fix typo
"may already be contain" -> "may already be contained"
No reviewsBIP340: remove repeat words
This PR contains minor updates to remove some repeat words from BIP-340.
No reviewsFix bip number in specification
BIP79: remove repeat word
This PR contains a tiny update to remove a repeat word in BIP-79.
No reviewsBIP-137: Fix typo
Fix a typo in BIP-317. Change "enterence" to "entrance.
No reviewsBIP 337: Compressed Transactions
This document proposes a serialization scheme for compressing bitcoin transactions. The compressed bitcoin transactions can reach a serialized size of less than 50% of the original serialized transaction. One of the methods for compressing, involves reducing the transaction outpoints in a potentially lossy way, therefore it is an optional path for compression. Without compressing the outpoints, compressed transactions still reach less then 70% of the original size. Reference Implementation: htt
No reviewsBIP2: update BIP editors
BIP324 reference code / test vector improvements
Includes: * Simpler (but equivalent) ElligatorSwift encoding function & spec * Improved test vectors * Test vector generation code * Code for converting test vectors for libsecp256k1 code. * Code for running test vectors against SwiftEC paper authors' code. * Miscellaneous reference code improvements (style, comments).
No reviewsbip 2: allow markdown
BIP authors should be allowed to write their BIPs in Markdown. The MediaWiki syntax that GitHub uses appears to be entirely undocumented (it does not always match mediawiki's documentation) which makes writing complex BIPs rather difficult. Markdown is much simpler and more concise.
No reviewsBIP38: remove broken links
BIP 331: Ancestor Package Relay
ML thread: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-May/020493.html Supersedes #1324.
BIP388 fixups
Fixes 3 links and makes the reference implementation executable.
No reviewsBIP352: fix link to coredev discussion
The current link is a redirect, which can be blocked by browsers or require user action.
No reviewsbip-0114: fix typo
There are typos in bip-0114, use this change to correct them.
No reviewsbip324: Remove garbage authentication packet (breaking change)
by merging it with the version packet. Or more accurately, by merging it with the first packet sent after garbage termination, which may be a decoy packet or the version packet. The new protocol simplifies implementations: - A protocol state machine won't need separate states for garbage authentication and version phases. - The special case of "ignoring the ignore bit" is removed. - The freedom to choose the contents of the garbage authentication packet is removed. This simplifies testing.
No reviewsBIP-388: change status to 'Proposed'
As there are already three independent implementations in production, and per @murchandamus's suggestion [on Twitter](https://twitter.com/murchandamus/status/1788948571565310385), this PR changes the status to `Proposed`. Also including some small formatting or MediaWiki syntax improvements.
No reviewsbip-0388:proof of registration - use wikimedia bold syntax
fix(bip85): rectify pwd_length in PWD BASE85 table
Fixes the table entry for `entropy := 512` in section `PWD BASE85`, that looks like a copy-paste error.
No reviewsBIP324: Remove obsolete test vector file
BIP-158: Fix description of M parameter
The M parameter is used as the inverse of the false probability rate, so change its incorrect usage in two places.
No reviewsBIP38, help GitHub intermediate syntax highlighter
It seems GitHub has some problem interpreting quintuple single quotes on the blame and styles-enriched-raw renderings. Edited using the browser, pending rebase and fixup.
No reviewsbip38 typo: specifid -> specified
There was a small typo in the bip38 specification. If I'm not totally mistaken the word should be "specified" (not specifid) Thx
No reviewsUpdate BIP 340 with fresher info on multi-, threshold, and blind signatures
Info and links about multi-, threshold, and blind signatures was a bit out of date.
No reviewsBIP 9: Misplaced table cells typo
Second row was created with an incorrect extra empty cell
No reviewsBIP 387: multi_a() descriptor
[BIP322] remove empty message requirement for full (proof-of-funds) proofs
Signed messages must be displayed in <Message> <Address> <Base64-encoded Signature>, however for that to be possible, there must be a Message in the first place. This changes removes those requirements of BIP322 that do away with the Message in Full (proof of funds) proof, thereby allowing it to be used as both a proof-of-address-control and proof-of-UTXO-control signature. Currently, you need to make two separate proofs to demonstrate control over both the address and for UTXOs, since most ve
No reviewsBIP 0009: Remove transparent background from figure.
Dear champion, authors, community: A copy of the revision message follows: > Remove transparent background from figure. > > Before this change, the figure presented black text on transparent > background, which might be unconvenient when using a browser able to > pass a dark theme preference to some environments where this document > is published, currently notably GitHub. A white background could help > a better visualization compromise. White background on the figure is > the single purpose
No reviews[trivial]: Correct spellings across bips
BIP-380: correct fingerprint for invalid hardened indicators examples
Examples for invalid hardened indicators also have a too long fingerprint, which is confusing.
No reviewsUpdate bip-0129.mediawiki
* add more recent links to descriptor related BIPs * explicitly specify LF as newline control character * explicitly specify unit for `dklen` variable
No reviewsbip-0158: remove unused and unrelated "data pushes" definition
This BIP is not in any way connected to the rules of Bitcoin script, i.e. the "data pushes" term is also not used anywhere and its definition can hence be removed.
No reviewsBIP 155: add Yggdrasil
Related to https://github.com/bitcoin/bitcoin/pull/23531
No reviewsbip112: fix trivial typo
"the the output" -> "the output"
No reviews[bip38] Consistent hyphenation usage
Every instance of "EC-multiplied" is hyphenated apart from the one changed in this PR.
No reviewsBIP 0174: bring back transparent background to figures
tweaking tkiz arrows for luke-jr with <3
No reviewsbip-0324: fix git instruction order in test_sage_decoding.py
Tiny fix correcting the order of commands, for `git checkout` one has to change into the repository directory first.
No reviewsBIP42: Update spelling of bitcoin
Bitcoin the network is written with a capital B. The unit is written with small b.
No reviewsUpdate bip-0039-wordlists.md
typos, grammar, clarity
No reviewsFinalize BIP-47
BIP47: Missing word
Typo of test data in bip 143
Transaction signature got sigHashType byte missing in decomposed block.
No reviewsRemove duplicate word in bip-0085.mediawiki
Fix doublicated word
No reviewsFix typo in BIP47
"the" repeated twice.
No reviewsbip158: update test vectors
Added test vector for block `1414221`. In particular this block has no output scripts other than `OP_RETURN`, and it's corresponding filter is `0x00`. Also updated the spec to clarify the same.
No reviewsFix typos in BIP 126
BIP-60: typo fix
minor typo fix have a nice one
No reviewsFix typos in BIP141
Originally authored by Greg Laun @greglaun. When I tried to reopen a prior pull request after closing it, I got the error that "The repository that submitted this pull request has been deleted.". Reopening here to merge.
No reviewsFix typo in bip-0087.mediawiki
typo fix
No reviewsBIP 143: Unify coin unit
In the example of BIP 143, the unit of coin output only 'No FindAndDelete' is described with satoshi. so changed it to the value of BTC unit according to other examples. ``` scriptPubKey : 00209e1be07558ea5cc8e02ed1d80c0911048afad949affa36d5c3951e3159dbea19, value: 200000 ``` change to ``` scriptPubKey : 00209e1be07558ea5cc8e02ed1d80c0911048afad949affa36d5c3951e3159dbea19, value: 0.00200000 ```
No reviewsBIP327: Fix Broken Links
- _Negation Of The Seckey When Signing_ link - add the missing "#" - _Indentifiying Disruptive Signers_ link - remove “i” after “f” - _Signing Flow_ link - should be _General Signing Flow_ instead
No reviewsbip-0011/12 - fixed broken implementation url
Replaced the current implementation URL which gives an error 404. The new link is to the equivalent branch since the original named branch has been removed.
No reviewsfeat: add TypeScript BIP39 implementation
Links to a zero-dependency, TypeScript BIP39 implementation. Node, browser, Bun, and bundler (Vite, WebPack, etc.) compatible. (BIP39 Authors: @slush0 @prusnak @voisine @ebfull )
No reviewsFix Descriptor BIP typos
Fix typos in BIP380
No reviewsBIP21: Update Anchor Link
Fixed the link to the #simpler-syntax portion of the BIP.
No reviewsUpdate BIP-380: fix typo
insuffient -> insufficient expressiosn -> expression
No reviewsBIP-10: typo fix
minor typo fix have a good day
No reviewsBIP 52: Durable, Low Energy Bitcoin PoW
Bitcoin's energy consumption is growing with its value. Although scaling PoW is necessary to maintain the security of the network, reliance on massive energy consumption has scaling drawbacks and leads to mining centralization. A major consequence of the central role of local electricity cost in mining is that today, most existing and potential participants in the Bitcoin network cannot profitably mine Bitcoin even if they have the capital to invest in mining hardware. From a practical perspecti
No reviewsDefine BIP-119 CheckDefaultCheckTemplateVerifyHash
Adds pseudocode definition of `CheckDefaultCheckTemplateVerifyHash()` to BIP-119 specification in the obvious way. Even though it is trivial, it should be included to dissolve any doubts.
No reviewsAllow Taproot outputs in BIP 322
With taproot activated now it should allow for segwit v1
No reviewsFix typo in BIP-32
BIP 84: Derivation scheme for P2WPKH based accounts
Add link to anquii/BIP39 (Swift)
Updated [bip-0039.mediawiki](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) to include a link to [anquii/BIP39](https://github.com/anquii/BIP39) in the Swift section of implementations.
No reviewsbip-0144: Add enum values for MSG_WITNESS_{BLOCK,TX}, MSG_FILTERED_WITNESS_BLOCK
Found these missing while working on https://github.com/bitcoin/bitcoin/pull/8880 . Ping @sipa @codeshark.
No reviewsAdd C# implementation of BIP39 (NBitcoin)
Add license for BIP75
Add CC-BY license for BIP75
No reviewsFix typo in BIP 49
BIP-12: typo fix
minor typo fix enjoy your day
No reviewsbip324: small improvements
Contains 3 small improvements to BIP324: * Since (in the V1 protocol) message type strings must be followed by only 0 bytes after the first 0, the first 16 bytes of an incoming V1 connection are predictable (network magic + "version\x00\x00\x00\x00\x00"). The current BIP text states to only compare the first 12 bytes instead of 16. This is in theory a semantics change, but wouldn't be observable except with negligible probability (v2 nodes that use 12 vs 16 can communicate with each other, and e
No reviewsObsolete BIP-0064
This BIP is <s>not implemented</s> obsolete and has expired according to BIP-0002.
No reviewsBIP 174: require creator to initialize empty output fields
The current version of the spec requires creator role to initialize empty input fields, but says nothing about output field initialization. At the same time, the following role, updater, "should also add redeemScripts, witnessScripts, and BIP 32 derivation paths to the input and output data if it knows them.", which does not make any sense if the fields were uninitialized. The [current Bitcoin Core implementation does this](https://github.com/bitcoin/bitcoin/blob/a24806c25d7a81a9c436de58eb5778d9
No reviews[BIP 157] Add missing words to sentence
This sentence does not quite make sense ... the size of a `cfcheckpt` message is not drastically from a `cfheaders` between two checkpoints. ... Change it to be: ... the size of a `cfcheckpt` message is not drastically different from a `cfheaders` message between two checkpoints. ...
No reviewsBIP 300: Hashrate Escrows (Consensus layer)
This is my draft of the hashrate escrows bip, the first of two drivechain bips.
No reviewsBIP 173: Base32 address format for native v0-16 witness outputs
Fix format [in BIP65]
Added the BDK implementation for bip-0127 proof of reserves
[Trivial] Fix text format (BIP 39)
Putting `ENT / 32` on a separate line is confusing. **Master:**  **Proposed change:** 
No reviewsTypos in bip-0119
bip85 passwords
# BIP-85 Passwords Application number 707764' was chosen as follows: `b"pwd"` --> `[112, 119, 100]` ---to hex--> `707764` + make it hardened --> `707764'` ## Rationale Having ability to generate countless number of strong passwords from one seed (one seed to rule them all). Main intention is to generate very strong passwords for sensitive applications like encrypting of ssh keys, master password for password managers etc. Passwords are constrained by length. Min. 20 character and max. 86 chara
No reviewsBIP341: Fix definition of NUMS point
@sipa @jonasnick @ajtowns This removes the `02` prefix. I think the entire section is a little bit lax on "key" vs "point": An earlier section defines "taproot output key" and "taproot internal key" to be (32byte) x-only keys, so it does not make sense to say "pick as internal key a point", for instance. But I'm not fixing this in this PR.
No reviewsbip-0324: remove `initiating` parameter from `ellswift_create` calls
The keypair generating pseudocode function `ellswift_create` doesn't take a `initiating` (or any other) parameter, i.e. it should be removed from the call-sites (one could think that keypairs are in some way generated differently depending on initiator/responder role, which isn't the case).
No reviews[New BIP 389] Multipath descriptors
This was posted to the mailing list a couple of weeks ago.
No reviewsBIP322: added background
Explains why BIP322 exists, and what it changes. From feedback on Twitter. Also adds a paragraph about when to return `ERROR`.
No reviewsBIP 329: Add `spendable` state to outputs
This PR adds a `spendable` state to outputs in BIP 329, allowing wallets to properly export and import the spendable state of outputs. This allows wallets to prevent users accidentally spending funds they previously marked as unspendable in wallets like Sparrow or Samourai that support coin control. We plan to implement the usage of BIP 329 into [Envoy](https://github.com/Foundation-Devices/envoy) shortly, and wanted to ensure that our users have a way to transfer spendable state in and out o
No reviewsBIP-0047: Reusable payment codes
Payment codes are SPV-friendly alternatives to DarkWallet-style stealth addresses which provide useful features such as positively identifying senders to recipients and automatically providing for transaction refunds. Payment codes can be publicly advertised and associated with a real-life identity without causing a loss of financial privacy. Compared to stealth addresses, payment codes require less blockchain data storage. Payment codes require 65 bytes of OP_RETURN data per sender-recipient
No reviewsBIP143 example and clarify
[BIP 44] Remove 21 Machine Wallet
Link is broken, gives 404.
No reviews[Trivial] BIP-70 Fixing sipa's gist proposal url
Came across "broken" url. This should have given a 404, but there is actually a user `1237788`.
No reviewsBIP340 updates: clarifications, variable-length messages, expand domain separation
For clarification, this does not make any semantics changes apart from permitting messages to have another length than 32. BIP341 and BIP342 obviously keep making use of just the 32-byte ones, and are thus unaffected.
No reviewsAdd Portuguese wordlist to BIP39
The Portuguese wordlist was carefully checked manually by Portuguese and Brazilians in order to achieve a high level of quality. All the words are commonly used in both countries. In addition the Portuguese wordlist was revised using Python in order to check the Levenshtein distance, words already used in other mnemonic sets and first 4 characters rules. More details on the word selection process can be found in the Bitcointalk's Portuguese section. Portuguese wordlist rules: 1. Words can be
No reviewsBIP 43: Reserve purpose codes 10001-19999 for SLIPs
@slush0 @prusnak cc @Arachnid
No reviewsbip324: fix link to chacha20
cc @real-or-random @sipa
No reviewsMark BIP84 as Final
Revisiting #1053, as this is now implemented by multiple software wallets and most hardware wallets (source: https://walletsrecovery.org). @prusnak: You mentioned you didn't want to move this to Final as you'd like to expand it with Taproot handling, but I suppose that was abandoned in favor of BIP86?
No reviewsBIP 174: fix incorrect reference to BIP 173
BIP 174 refers to "The sighash algorithm for Segwit" which is specified in BIP 143, not BIP 173.
No reviewsAdd Kalle Alm as BIP editor
Update language to clarify that there are multiple editors.
No reviewsBIP-322: switch to using tx based approach
It seems more people are leaning towards this being an update to BIP-322 over a new BIP, so I am swapping this to being an update instead of a new BIP. I am not sure if I like the legacy format compatibility, but people asked for it elsewhere, so I'm keeping it for now.
No reviewsBIP-0039: Add Python-HDWallet package
Add Python-HDWallet package on Other Implementation.
No reviewsBIP142: Deferred
BIP142 will not be deployed with BIP141 at the same time. Initially, people are expected to use P2SH segwit, or payment protocol for native segwit
No reviewsbip93: minor cleanups
This adds two new test vectors, but otherwise purely corrects grammar/syntax mistakes and makes no changes to the BIP content.
No reviewsAdd BIP MuSig2
This PR adds a BIP for the MuSig2 protocol. We, the BIP authors, posted an initial draft version to the [bitcoin-dev mailing list in April](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-April/020198.html). Since then, we have addressed feedback from the mailing list and the development git repository (to the best of our knowledge, we didn't leave feedback unaddressed). We kept the resulting change log in the BIP draft. In the past weeks, we received no requests for major changes o
No reviewsImprove BIP-341 wording
Reading the spec closely the different language used for serialization of input outpoints and input amounts was confusing on first read. This change uses the same language for both, which makes it easier to read.
No reviewsBIP324: Fixed length message type IDs
Updates since Jan 11 2023: - Introduce fixed length message type IDs: 1-byte short ID, or 12-byte long ID - Discourage and unallocate short message type IDs for infrequent message types - Grammar, layout and indentation fixes
No reviewsnew BIP: codex32
This introduces "codex32", a wallet seed/share format that uses the bech32 alphabet, a bech32-like checksum, and supports Shamir Secret Sharing, all possible without the use of electronic computers (although you can, and for some steps probably should, use computers if you want). Mailing list discussion: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-February/021469.html Website with more docs about hand computation (which isn't really covered by the BIP): https://secretcodex32.co
No reviewsPromote BIPs 123 and 2 Draft->Active (and implement them)
I plan to merge this on December 14th. If there are any hard objections to this change, please bring it up on the bitcoin-dev mailing list before then. Further reviews of the implementation are welcome in the meantime. Please refrain from requesting further changes to the BIPs themselves unless it is a blocker/show-stopper or trivial (not changing the meaning). https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-November/013331.html
No reviewsPromote Accepted->Final BIPs 11, 14, 21, 22, 23, 31, 32, 34, 35, 37, 65
These seem to meet the criteria for Final, and are already Accepted status.
No reviewsUpdate BIP-0001 for github move
- Mention github instead of wiki - Add markdown as allowed format - Fix some weirdnesses such as "A BIP editor must subscribe to the gmaxwell@gmail.com list.". Remove the repetition and create a new section which lists the BIP editors (currently only gmaxwell). - Prefer discussion on mailing list to forum This is just a cleanup and change for the github move. I have not changed the process to jgarzik's new proposed process (http://sourceforge.net/mailarchive/forum.php?thread_name=CAAS2fgROsymXn
No reviewsUpdate bip-0370.mediawiki
Small typo. Changed 'gemeric' to 'generic'.
No reviewsMark Taproot BIPs as Final
Taproot is supported by Bitcoin Core and adopted by a majority of the network, so it should be marked as Final. The progression from Draft to Proposed and from Proposed to Final was likely forgotten.
No reviewsAdd BIP-329 to the index table
BIP0174 and BIP0370 PSBT_GLOBAL_TX_VERSION <valuedata> type correction
The \<valuedata\> description field for PSBT_GLOBAL_TX_VERSION on these two BIPs list the type as a signed int, where the \<valuedata\> lists it as a uint.
No reviewsUpdate PSBT_IN_TAP_BIP32_DERIVATION key desc
Clarify intended usage of PSBT_IN_TAP_BIP32_DERIVATION for key-spends.
No reviewsInclude image for BIP42
BIP174: s/uiht/uint/s
Wallet Labels Export Format
This was first proposed [on the mailing list](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-August/020887.html) on Aug 24 as a common format for the export and import of wallet labels. Following discussion there, on this [bitcointalk post](https://bitcointalk.org/index.php?topic=5411159.0) and via private channels with other wallet developers, the original proposal was simplified, and changed to use JSON instead of CSV. The revised proposal has been well received, and I believe i
No reviewsMore examples for BIP143
BIP 341: allow taproot_sign_key with no script tree
In contrast to taproot_output_script, taproot_sign_key was not able to deal with a script_tree that is None. This commit fixes taproot_sign_key such that it can sign for such outputs. This commit avoids changing the behavior of the functions except taproot_sign_key at the cost of having some code duplication. Alternatively, one could let taproot_tree_helper deal with a None script_tree directly. CC @sipa @ajtowns
No reviewsBIP341: add aux_rand argument to taproot_sign_key
The `schnorr_sign` function from the [bip340 reference code](https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py#L98) has a third required argument `aux_rand: bytes`. Change: - ~adding `aux_rand` as an optional argument that defaults to `0x0000...`~ - adding `bip340_aux_rand` as a required argument to the function `taproot_sign_key`
No reviewsBIP 341: Fix taproot_tweak_pubkey
`lift_x` returns `None` if the input integer is not an X coordinate on the curve to indicate failure. `point_add`, on the other hand, interprets `None` as the point at infinity. Therefore, without this commit, if the internal `pubkey` is not a valid X coordinate, the function will not fail, which contradicts the specification in the "Script validation rules section". Instead, it sets `Q` to `t*G`. A test vector is being added here: https://github.com/bitcoin-core/qa-assets/pull/98 CC @sipa @aj
No reviewsBIP330: drop redundant booleans from the sendtxrcncl message
The reconciliation protocol assumes using one role consistently. Since it is irrelevant which one is which, we can imply that the initiator of the P2P connection will assume the role of reconciliation initiator. This protocol simplification will seep into the implementation.
No reviewsAdd BIP39 implementation reference
Add a reference to the JS implementation
No reviewsUpdate bip-0039.mediawiki
Fixed some syntax,
No reviewsChange BIP1 to status Active
Make it consistent. From the text: "Some Informational and Process BIPs may also have a status of "Active" if they are never meant to be completed. E.g. BIP 1 (this BIP)."
No reviewsFix incorrect signature test vectors in BIP322
While attempting to implement bip322 I was unable to generate the same signature as the ones provided. Furthermore, I was unable to verify these signatures in my implementation. After some digging, I noticed the test vectors in the bip322 PR to Bitcoin Core uses different values. See util_tests.cpp in https://github.com/bitcoin/bitcoin/pull/24058 This P.R. replaces the current test vectors with the ones from the P.R. It also adds additional test vectors for the transaction hashes of the to_sp
No reviewsUpdate bip-0300.mediawiki with consistent use of "ACK-counter" term
I have updated all instances of "ACK Value" and "ACK Counter Value" within the BIP to be "ACK-counter". Updates made to align with term used through out the BIP: Line 213 - adding explicit mention of "ACK-counter" Line 229 - adding explicit mention of "ACK-counter" Line 257 - replaced "ACK-value" with "ACK-counter" Line 288 - replaced "ACK value" with "ACK-counter"
No reviewsNew BIP 351: Private Payments
I am submitting a new BIP following a discussion on the mailing list. Link: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-July/020812.html
BIP 341: add missing conversions between bytes and int
It seems like there are some missing type conversions in the example python code for `taproot_tweak_seckey`. Changes made: - Convert seckey0 to bytes at the start of the function. - Return the output as bytes for consistency with the rest of the code.
No reviewsChanges/clarifications to bip-330.
We are hopefully approaching [the merge of the first batch of Erlay commits](https://github.com/bitcoin/bitcoin/pull/23443), so it was suggested to update the spec in this repo. This PR was already reviewed by some people while reviewing the implementation.
No reviewsBIP118: simplify explanation of signature message
Don't try to directly duplicate BIP 341/342 as much, to hopefully make it easier to understand.
No reviewsBIP 372: Pay-to-contract tweak fields for PSBT
A proposal was originally discussed in https://github.com/bitcoin/bips/pull/1239 and than on a mailing list https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-January/019761.html
Update BIPs 300/301
Here I link to the newest code, delete outdated material, and clarify confusing sections.
No reviewsnit: fix typo in bip-0370 test vectors.
Clarify BIP 152 interaction with classic relay mechanisms
This clarifies some unstated details previously, as well as defines some previously undefined behavior.
No reviewsBIP 340 & 341: use consistent definition of lift_x
As pointed out by @Randy808 [here](https://github.com/bitcoin/bips/pull/1348#issuecomment-1212973614). CC @sipa @ajtowns
No reviewsBIP 136: Bech32 Encoded Tx Position References
This proposed BIP was posted to the mailing list just under two months ago. As there has been no serious objections, (unfortunately no mailing list feedback at all), I wish to formally ask for a BIP number to be assigned to our proposal. https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-May/014396.html
No reviewsVarious changes to BIP9
- Add start time - Specify the state transitions less ambiguously. - Add a state diagram.
No reviewsbip-141: improve `witness` field wording
When describing the `witness` field, reword "witness data" to "witness field" as "witness data" refers also to the `marker` and `flag` fields. ### The confusion https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#transaction-size-calculations > Base transaction size is the size of the transaction serialised with the witness data stripped. Here, "witness data" refers to having the `marker`, `flag` and `witness` fields stripped. https://github.com/bitcoin/bips/blob/master/bip-0141.
No reviewsbip-39 dart implementation added
Added bip-39 dart implementation to the list
No reviews[BIP-119] Use mediawiki syntax highlighting, add comment to spec
@achow101 pointed out to me that mediawiki does in fact have syntax highlighting, and how I could use it in BIP-119. This PR adds that as a clean up, as well as marginally improves comments.
No reviewsbip-0340: clarify that lift_x fails with out-of-range inputs
Without this commit, it's not defined what happens if x is not in range 0..p-1. However, lift_x may easily be called with out of range values. The reference implementation of lift_x correctly returns failure in such cases. CC: @real-or-random @sipa
No reviews[BIP-119] Slim down motivation, add more references
The level of detail in the motivations for BIP-119 was excessive, this PR removes the lengthy motivation section and adds more links out to various resources.
No reviewsBIP 0371: Make hex example consistent with base64
Hex test vector is an invalid PSBT from a magic bytes perspective and also inconsistent with the base64 encoding
No reviewsBIP-0371 vector fix + nits
Add BIPs 340-342 bip-schnorr, bip-taproot, bip-tapscript
This adds the 3 BIPs that describe the consensus rules and (basic) wallet operation for the Taproot proposal (https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-May/016914.html). There have been several discussions on the mailing list on the original idea, and this proposal specifically, including ones that resulting in significant changes being made to the proposal. Furthermore, a structured review session (https://github.com/ajtowns/taproot-review) with many participants was held, re
No reviewsbip-0039-wordlists : Typos, capitalization and trailing whitespace.
* "there not must" => "there must not" * "exemple" => "example" * Capitalize "French", "Italian" * Trailing whitespace removal.
No reviewsBIP 326: Anti-fee-sniping protection with nSequence in taproot transactions to improve privacy for off-chain protocols
This adds a BIP for improve could the privacy of certain off-chain protocols like Lightning, CoinSwap or DLCs. It has already been implemented by Sparrow wallet.
No reviewsBIP 0174: Remove transparent background from figures
This is basically the same as https://github.com/bitcoin/bips/pull/1184 and https://github.com/bitcoin/bips/pull/1192. In 1192, node connections are visible, but with low contrast. In 1184 and in this case, arrows are barely visible at all.
No reviewsBugfix: BIP 326: Correct Author/Title headings
Followup to #1299 to actually fix BIP 326 rather than bypassing CI checks.
No reviewsBIP340: fix broken link to Schnorr's blind signature attack
The link in BIP 340 to Schnorr's 2001 paper "Security of Blind Discrete Log Signatures Against Interactive Attacks" is broken. This fixes it with an updated link (at the same domain).
No reviews[BIP-119] Clean Up Spec of Opcode
Builds on #1294. This cleans up the spec to be 'higher level' psedocode that may be easier as a reference to parse than the C++ dump from the reference implementation. Also makes abundantly clear the anti-DoS requirements for validation, hopefully. cc @achow101 @petertodd note: not that anyone *should* implement bitcoin in python...
No reviewsUpdate BIP-119 to include python reference hash / link BIP-341
Thanks to roconnor for pointing that this was not clear from the BIP text and one had to see the reference implementation.
No reviewsbip-326: avoid errors from scripts/buildtable.pl
Merge of #1269 triggered CI errors due to `script/buildtable.pl`, in particular: * the Author: field is not a valid email address (" at " and " dot " rather than "@" and ".") * missing Comments-URI * License code is wrong (should be "CC0-1.0" rather than "CC-0") * the Title field is longer than the 44 char maximum (could perhaps be "Anti-fee-sniping in taproot transactions", dropping the how and why) This makes the trivial changes to the BIP to add the Comments field and fix the License c
No reviewsAdd .NET standard bip39 implementation
BIP338: Add further restrictions on disabletx
Clarify that peers must set fRelay=false in order to send disabletx, and that notfound and feefilter messages may not be sent.
No reviews[BIP-119] Add notes and warnings about DoS during validation of CTV.
This was pointed out to be missing from the BIP by @petertodd. CTV is, as implemented in the PR, safe. This is not by accident, CTV was designed to not have these problems. But it's important to make these DoS issues and CTV's design w.r.t. clear, especially since the adding of the example checker logic did make the BIP's spec dos-able (though not any reference implementation).
No reviewsBIP0039 added Spanish wordlist
These are a some of the restrictions we have followed in order to create the Spanish wordlist: 1. It is possible to uniquely identify a word just typing the first four or less characters of the word. 2. Spanish words have special characters (such as á, é, ü, ñ, etc.) not available in every keyboard. It is possible to type 'a' instead of 'á' or 'n' instead of 'ñ', etc. while still being able to identify the word with the first 4 characteres. This means that, for example, 'caña' and 'canal' cannot
No reviewsAdd BIP150 (Peer Authentication)
[BIP-174] Clarify that partial_sig should be a valid.
In discussing https://github.com/rust-bitcoin/rust-bitcoin/pull/669?notification_referrer_id=NT_kwDOAA2G-7EyNDgwMTU5NzIxOjg4NjUyMw#event-5861680619 it's clear that the PSBT spec is ambiguous with respect to what values should be parseable for PSBTs, this patch clears up the ambiguity. ------------ Personally, I feel that the better path is to allow NULLDUMMY here, as there could be some situations whereby satisfaction is NP-hard without some indicator of use a signature or not: e.g., a contriv
No reviewsclarify message serialization and add test vectors to BIP-322
This * adds test vectors to the BIP-322 (signmessage) proposal (more needed, but better than nothing) * clarifies how messages are serialized as this was slightly ambiguous * clarifies that the <code>to_sign</code> transaction must have version, locktime, and sequence all set to 0 for the SIMPLE format (signature only)
No reviewsUpdate bip-0052.mediawiki
Fix typos
No reviewsbip174: link to 'compact size' definition, document version 0 handling of > 0xFD
[BIP-119] Rename Channel Factories / Clarify Malleability
Pointed out by @roconnor-blockstream that it's more accurate to describe this limitation with respect to currently existing channels, and not Eltoo. Also renamed Channel Factories to "Batched Channel Creation" as channel factories refers to a specific protocol, where Batched Channel Creation is a more general term.
No reviews[BIP-119] Link Reference implementation to current PR in Bitcoin Core
Fix BIP-119 Typo + Clarify the reasons for 32 bit lengths
when drafting the BIP I attempted to triangulate what the width of the fields for number of inputs/outputs should be from various sources in the codebase, and made an error in looking at the signing and encoding logic, and not the _decoding_ logic which restricts vectors (vin, vout) to MAX_SIZE which is 33554432. This fully justifies not using a wider type (uint64_t). Also clarified arguments for not using a narrower type (uint16_t) which would be possible just for the vIn based on block size,
No reviews[BIP-0119] Include test vectors for CTV in BIP's subdirectory
This PR adds test vector files for those wishing to check CTV behavior matches Bitcoin Core / the BIP.
No reviewsBIP-174: Removing PSBT_OUT_TAP_LEAF_SCRIPT
`PSBT_OUT_TAP_LEAF_SCRIPT` seemed to appear in output key sections by copy-paste from input section. First, it shares the same byte no as `PSBT_OUT_TAP_TREE`, second its description talks about "witness"
No reviewsBIP-341: explicitly allow softforks with future leaf versions
Currently the BIP-341 and BIP-342 leave the question of how to verify signature for non-`0xC0` leaf version scripts undefined. I haven't checked the Bitcoin Core code for that matter yet, but (1) I think we need to cover signature validation of non-`0xC0` leaf version scripts in this standard and (2) the only way of doing that is "always succeed" rule for the future leaf version values (otherwise we will need a hard fork to introduce them).
No reviewsAdd BIP 370: PSBT Version 2
Adds a BIP specifying PSBT version 2, as discussed on the mailing list: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-December/018300.html This requires the formatting changes to BIP 174 to be merged first: #1055
No reviewsClearer language in BIP38
This does not change the content of the BIP, but makes things clearer to people reading the BIP in today's context (where there are multiple "bitcoin address" types that use compressed DER public keys, and taproot introduces another compressed format (x-only public keys)) These additions to the language are implied given the late-2013 early-2014 context of this BIP. This fix will make them explicit.
No reviewsBIP 0067: Fix a broken link
❤️λ?
No reviewstypo: BIP [380-385]
Minor touch ups in the descriptors BIPs
No reviewsFix typo in BIP 32
It's not possible for `I_L` to be zero, since `I_L` is a binary blob. It is possible for `parse_256(I_L)` to be zero, since `parse_256(I_L)` is an integer. `parse_256(I_L) = 0` is also an error condition in other parts of the document.
No reviewsBIP 0016: Fix broken link
BIP 325: Clarify that scriptWitness is a stack, not a byte string
Strictly speaking the bip isn't wrong. It just happens that an empty byte vector is serialized identical to an empty vector of any other type, but it takes the reader an extra step. Thus, the minor fixup suggestion.
No reviewsBIP 325: Remove empty section "Acknowledgement"
The empty section should either be removed or filled in
No reviewsMention activation heights in BIP 341 🥕
While this change isn't needed, I think it is nice for the reader to tell if and when the deployment activated. ping @sipa, @jonasnick, @ajtowns for ACK or NACK
No reviewsCzech wordlist for BIP0039
Consensus set of words after discussion in czech comunity in facebook group
No reviewsClarify BIP 322 seralization requires a signed transaction
BIP341/342: Implementation clarifications
These clarifications would each have prevented an error in our initial implementation of these BIPs.
No reviewsFixes a link in BIP 341
BIP 0069: Fix broken link
Minor Updates to BIP-119
This PR contains some minor updates to BIP-119 that clarify 1) Deployment params 2) CTV v.s. Anyprevout 3) Synergies with other softforks 4) The choice of SHA-256 v.s. RIPEMD 5) The choice of Untagged hash vs tagged
No reviewsBIP 0174: Clarify use of PSBT_IN_FINAL_* when data is empty
This is a clarification on how PSBT_IN_FINAL_SCRIPTSIG and PSBT_IN_FINAL_SCRIPTWITNESS should be handled when the data is empty. Based on feedback from @achow101 on twitter https://twitter.com/kallerosenbaum/status/1443856371368271872 It seems [more people than I](https://twitter.com/benthecarman/status/1443858125971501057?s=20) had interpreted the bip like you should always set PSBT_IN_FINAL_* even if data is empty, but @achow101 says we should leave those unset.
No reviewsBIP 129: Bitcoin Secure Multisig Setup (BSMS)
This PR proposes a standardized process for setting up Bitcoin multisig wallets securely. Original mailing list discussion: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-February/018385.html Original draft PR: https://github.com/nunchuk-io/bips/pull/1
BIP 370: Use PSBT_GLOBAL_FALLBACK_LOCKTIME in text
Replacing occurences of PSBT_GLOBAL_PREFERRED_LOCKTIME with PSBT_GLOBAL_FALLBACK_LOCKTIME to match the name in the global map table.
No reviewsBIP 0174: Fix typo in PSBT_OUT_BIP32_DERIVATION
BIP 0174: Correct format of PSBT_GLOBAL_TX_MODIFIABLE
The descriptions for this field differ between bip370 and bip174. I suppose the correct format of PSBT_GLOBAL_TX_MODIFIABLE is the one in BIP370.
No reviewsReject BIP-0019 (expired)
According to expiration rules.
No reviewsAdd BIP0009 to index
Let's try to make this a requirement before merge. No stealth BIPs :)
No reviewsBIP 83: Dynamic Hierarchical Deterministic Key Trees
Proposed deterministic key tree structures suffer from the limitation that once a hierarchical level is used to derive signing keys, we can no longer nest deeper levels. This BIP proposes a solution to this problem.
No reviewsbip-0350: fix links for reference implementations
This just updates broken URLs. @sipa
No reviews[BIPs 380-386] Output Script Descriptors
Here are several BIPs specifying output script descriptors as implemented in Bitcoin Core. In order to make it easier for implementors to indicate which descriptors they support, I've split up the specifications into multiple BIPs. The first is a general BIP describing the philosophy, general structure, shared expressions, and the checksum. The rest of the BIPs specify each descriptor function itself and are grouped into categories of non-segwit (pk, pkh, p2sh), segwit (wpkh, wsh), multi (multi
[BIP78] Recommended fee rate estimation for P2TR
Non-Witness: Outpoint size = 32+4 Sequence size = 4 ScriptSig VarInt Size= 1 Witness: WitScript VarInt Size= 1 Then script itself: 65 signature size + 1 byte of push opcode `(32 + 4 + 4 + 1) + (65+1+1)/4=57.75`, rounded up `58`. We assume 65 of signature size rather than 64, since we can't assume the sighash to be `Default`.
No reviewstypo in bip-0078
This is a transaction with inputs of type P2SH-P2WPKH 1. P2SH-P2WPKH is defined as a valid type for payjoins in this doc and the other type not. 2. The RedeemScript(0 c78a45725355828d5658074dd5260d5fcb698530) consists of 0 + <20 bytes> and indicates therefore P2WPKH-Type. https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#P2WPKH_nested_in_BIP16_P2SH
No reviews[BIP 158] Fix grammar - remove 'was chosen as'
This sentence is grammatically incorrect: "Empirical analysis also shows that was chosen as these parameters ..." Elect to fix the sentence to be: "Empirical analysis also shows that these parameters ..."
No reviews[BIP78] Fix client implementation when there is output substitution
There was a bug in the payjoin client reference implementation if the receiver used output substitution, causing the payjoin to fallback to normal payment unecessarily. Fixing bug reported by @Kixunil (https://github.com/btcpayserver/btcpayserver/issues/2677) Fixed on the C# client (https://github.com/btcpayserver/BTCPayServer.BIP78/commit/451e1126f7b3f5c6bb9b648aa3ac6bd7485996ee) and tested by Kixunil. The bug was best explained by @Kixunil ------- * The code was iterating over proposed PSB
No reviewsUpdate BIP-119 Variable Names
Opening for bikeshedding here before mirroring the code changes. Some folks found StandardTemplateHash being a consensus definition and not a policy definition confusing. This PR attempts at unambiguous names. More verbose than I like, but it's readable at least. Bikeshed now or forever hold your peace :laughing:
No reviewsBIP 371: Tests vectors and reference implementation
BIP-48: Trivial errant apostrophe fix
Plural "wallets", not possessive "wallet's".
No reviews[BIP174] Fix broken link to psbt2
The link to PSBT2, which was broken before the BIP number was assigned, is now linked to BIP370.
No reviewsBIP155: change when sendaddrv2 is to be sent
Mandate to send `sendaddrv2` to the peer before sending our `verack` to them. This way we know that the peer does not support `addrv2` if we did not receive `sendaddrv2` from them before receiving their `verack`.
No reviewsBIP39: Clarify necessity for ideographic spaces.
I left it unclear / open to interpretation on whether to use ideographic spaces, but realized that without being specific on its necessity, developers may implement something that would cause trouble with the Japanese user. (two words looking like one word, or phrase verification failing because it can't handle ideographic spaces, etc.) Hopefully, this will clear up any mis-understandings.
No reviewsBIP 371: Taproot Fields for PSBT
Specifies new field types and UTXO type semantics for Taproot PSBT fields.
No reviewsBIP118: Key version should be 0x01
The key version should be 1 unless I am misunderstanding something.
No reviewsBIP 86: Key Derivation for Single Key P2TR Outputs
This BIP specifies a suggested derivation path to use for single key P2TR outputs, following BIP 43/44. Test vectors and the actual derivation path value for the purpose will be set after receiving a BIP number.
Update BIP 118 for taproot, rename to ANYPREVOUT
Lots of updates to BIP 118 in light of taproot. cc @cdecker
No reviewsBIP155: extra-clarify the semantic of sendaddrv2
BIP155: extra-clarify the semantic of sendaddrv2. This is also how the code works currently. There seems to be some [misinterpretation](https://github.com/bitcoin/bitcoin/pull/22245#issuecomment-862246086) of the current wording in BIP155. Clarify that (hopefully).
No reviewsReplaces Bech32 by Bech32m in BIP341
Segwit version 1 is encoded by Bech32m given by BIP350
No reviewsBIP155: include changes from followup discussions
* Increase the maximum length of an address from 32 to 512 bytes and clarify that the entire message should be rejected if it contains a longer address. (from https://github.com/bitcoin/bips/pull/766#issuecomment-519248699) * Remove a contradiction about unknown address types - "MUST ignore" VS "MAY store and gossip". * Recommend gossiping addresses for unknown network ID and for networks to which the node is not currently connected to. (from https://github.com/bitcoin/bips/pull/
No reviewsBIP-0078: fix typo
the payjoin proposal has more inputs
No reviewsupdate Joinmarket BIP78 status
See https://github.com/JoinMarket-Org/joinmarket-clientserver/releases/tag/v0.7.1
No reviewsBIP85: Add AirGap Vault implementation
The other PR was closed automatically by github: https://github.com/bitcoin/bips/pull/1114
No reviewsBIP 174: clarify key uniqueness
The description of `keytype` incorrectly said it had to be unique: it's the whole `key` that must be unique, not the `keytype` (since we can for instance have multiple `xpubs` in the global map). @achow101
No reviewsMinor fixes to BIP-0009
Do two minor fixes to BIP-0009 - Add a couple of extra hyperlinks to other bip docs to assist the reader - Fix typo, remove unneeded 'in'
No reviewsBIP 341: fix tuple index in taproot_tweak_pubkey
It is [0] but the pubkey is index [1]
No reviews[BIP 39] Add reference implementation
Add an existing reference implementation done in 100% Smalltalk code.
No reviewsBIP173: segwit address witness version is one 5-bit char not one byte
When describing the segwit address, `bc1q...` for example - the `q` represents witness version `0` but it is not one entire byte as the BIP currently describes it, it is one bech32 character which only represents 5 bits. (unless the intention is to describe the byte in terms of how ASCII characters occupy one byte?)
No reviewsBIP88: add Acknowledgements section
Didn't add the Acknowledgements section in time before the BIP88 was merged, fixing it with this PR.
No reviewsBIP88: fix description of the "*h/0" example
The text describing the example wrongfully stated "followed by any non-hardened index" while the second index is just 0
No reviewsBIP32: Modified test vectors for hardened derivation with leading zeros
As mentioned in https://github.com/bitpay/bitcore-lib/issues/47, https://github.com/iancoleman/bip39/issues/58 and https://github.com/btcsuite/btcutil/issues/172, the private key with leading zeros(i.e. less than 32 bytes) should be padded to 32 bytes when we derive a hardened child private key from a private key. Unfortunately, the original test vector 3 is not suitable for this case since both keys are 32 bytes. In the new test vectors, the key m/0<sub>H</sub> is 31 bytes. [btcsuite/btcutil
No reviewsBIP-0136: updates data encoding/decoding examples due to bech32m/bech32
BIP-350 introduces a modification to the checksum of the Bech32 specification from BIP-173. This new variant is referred to as Bech32m. This pull request updates all the txref test vectors with the new Bech32m checksums and also adds several new examples and clarification of the existing text.
No reviewsBIP 88: Templates for Hierarchical Deterministic derivation paths
Was first announced in https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-July/018024.html Motivation and descriptions of usecases are given in the BIP draft, in the mailing-list post, and expanded in the replies to this mailing-list post and in [Bitcoin Optech newsletter 105](https://bitcoinops.org/en/newsletters/2020/07/08/). While this draft BIP did not receive extensive public discussions, it did not receive any rejections or criticism either. Within private or semi-private discu
BIP 87: Hierarchy for Deterministic Multisig Wallets
Updates derivation paths for descriptors, by removing the redundant `script_type` currently in use. @luke-jr @harding @hugohn
No reviewsBIP340: remove batch speedup graph and link to it instead
This avoids having to update the BIP with a fresh graph every time there's a change to libsecp and suggests that the expected speedup depends on the specific implementation. Alternative to https://github.com/bitcoin/bips/pull/1096. This currently links to my libsecp branch with batch verification (https://github.com/bitcoin-core/secp256k1/pull/760). Once we merge _some version_ of batch verification, we'll only have to update the link. CC @sipa @real-or-random @gmaxwell
No reviewsBIP 343: Mandatory activation of taproot deployment
This PR specifies a BIP 8(LOT=true) deployment to activate Taproot. Mandatory signaling would attempt to be enforced in approximately November 2022 (defined by block height) assuming the signaling threshold is not met before then. Original mailing list discussion: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-April/018783.html
No reviewsAdd another Rust implmentation of BIP-0039
Signed-off-by: koushiro <koushiro.cqx@gmail.com>
No reviewsBIP341: speedy trial activation parameters
Adds mainnet and testnet3 activation parameters. This uses the "speedy trial" approach [0] with some refinements to the exact mechanism [1], as implemented in bitcoin/bitcoin#21377 . Parameters are selected based on previous discussions [2] [3] [4]. The parameters are: * starttime = 2021-04-24 00:00 UTC * timeout = 2021-08-11 00:00 UTC * min_activation_height = 709632 (est mid November 2021, mainnet only) * threshold = 1815 / 2016 blocks (90%, mainnet only) In terms of block heights, that wil
No reviewsBIP341/342: document current deployment status
Minor: linking BIPs in BIP9
BIP 341/342: Add link to Bitcoin Core test vectors
Also remove mention of non-existing examples. Test vectors and examples could get more love, but at least this points implementers to the existing test vectors. CC @sipa @ajtowns
No reviewsBIP 174: Add test vectors for additional unsigned tx serialization
There are some edge cases with unsigned tx serialization, so this adds test vectors for them. Specifically, an unsigned tx with witness serialization is invalid, a transaction with 0 inputs and 0 outputs is valid, and a transaction with 0 inputs and non-0 outputs is valid.
No reviewsUpdate bip-0174.mediawiki
I, personally, find this easier to read when rendered. @achow101 WDYT please?
No reviewsBIP-85: Added Ian Coleman's Mnemonic Code Converter
- Added Ian Coleman's Mnemonic Code Converter to the "Other Implementations" section - https://iancoleman.io/bip39/ is a nice tool to play around with and to derive test data for BIP-85 PS: Sorry that I did not include this in the previous PR #1083. I just found this this very moment, but I think it is worth while to include because it gives the user/reader an instant tool to play with and to see results of BIP-85.
No reviewsBIP-0085: fix typo
I've noticed a small typo in the specification of bip 85 -- hardened derivation was after the slash.
No reviewsBIP8: remove redundant and conflicting sentence from param selection and fix typo
At the end of the param selection section it's explicitly stated that `startheight` _must_ be a multiple of 2016.
No reviewsBIP 8 revisions: use height, secure locked-in signalling, and enable setting lockinontimeout later
@shaolinfry
No reviewsBIP 8: Add minimum activation height
The Speedy Trial activation proposal introduces a new parameter named `minimum_activation_height`. This PR adds that to BIP 8 so that such Speedy Trials can be implemented using entirely BIP 8.
No reviewsbip322: (another) significant overhaul
Changes the validation rules to always require (script) standardness checks, except for checking NOPs and version numbers, where incorrect values result in "inconclusive" rather than "invalid". Allow validators to also return "inconclusive" when they encounter a script that they're unable to interpret. This makes it possible to write a BIP-322 validator using Miniscript, and to write (say) a p2pkwh-only validator while remaining within spec. Both should encourage adoption. Also removed the `to
No reviewsBIP 85: fixed some typos and minor English mistakes
- these minor touch-ups should make the affected sentences easier to read
No reviewsBIP85: fixed test vector.
Fix typos in BIP 2
Propagate summary tone of BIP Comments to their applicable BIP preambles
Affects: BIPs 38, 39, 42, 47, 60, 61, 74, 75, 90, 150, 151, 152 Will merge after a week or so. Anyone who disagrees with the assessments may feel free to post on the Comments wiki and/or this PR by then. For reference, BIP 2 specifies how to post comments: https://github.com/bitcoin/bips/blob/master/bip-0002.mediawiki#BIP_comments
No reviewsBIP 125: Change 'Client support' to 'Backwards compatibility'
+ Change 'Client support' section to 'Backwards compatibility' + Reasons: avoid confusion and according to the format mentioned in the below link: https://github.com/bitcoin/bips/blob/master/bip-0002.mediawiki#specification + Discussed changes in https://github.com/bitcoin/bips/pull/994
No reviewsBIP 8: Elaborate and clarify parameter selection
BIP 8: Make threshold configurable, and reduce recommendation to 90%
bip8: tiny wording fixups
RE-reading through the BIP i found some sentences to make it seem like LOT was always `true` but it was made optional.
No reviewsbip39: discourage from using localized wordlists
Add a paragraph which explains that using a non-English bip39 mnemonic is usually a bad idea.
No reviewsAdd BIP 338: Disable transaction relay message
This message, valid between version/verack for peers with version >= 70017, would allow establishing at the time of connection that no transactions will be announced/requested between those peers.
BIP 174: Reformat, reorganize, and mark final
Pulls in most of the formatting changes from #953. Also explicitly specifies the parts for PSBT version 0 as well as sections for the process of adding new fields and PSBT versions. Lastly marks BIP 174 as final. Although I am marking it as final, this is only really for the general format. New fields can be added, and those fields should be added to the field listing tables in BIP 174.
No reviewsBIP155: Remove external link
Fix link.
No reviewsA few lost improvements to BIP350
These are edits that I had when #1056 was first opened, but apparently got lost when updated it to include the BIP number. Add them back.
No reviewsbip 8: simplify MUST_SIGNAL check
Simplify the validity check that at least threshold blocks are signalling during the MUST_SIGNAL phase for BIP 8.
No reviewsBIP85 - Add further application cases
BIP8: allow some MUST_SIGNAL blocks to not signal
Based on #1020 since they touch neighbouring lines in the BIP. Using the same threshold for MUST_SIGNAL as STARTED means that any chain that would have resulted in activation with lockinontimeout=false will also result in activation with lockinontimeout=true (and vice-versa). This reduces the ways in which a consensus split can occur, and avoids a way in which miners could attempt to discourage users from setting lockinontimeout=true.
No reviewsReject BIP175
Following @ysangkok proposal a few months back here https://github.com/bitcoin/bips/pull/960 I propose to reject this BIP due to lack of meeting the BIP process requirements. Main point that has not been addressed as part of this protocol is the data management aspect, Greg pointed this point in the bitcoin mailing list.. I highly recommend refraining from using this protocol, I would suggest to migrate to other protocols that handle this aspect. Regards, Omar
No reviewsBIP34 encoding clarification
Non minimal encodings are rejected by the bitcoin-core client because it only checks against a specific encoding. Link for reference: https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp#L3503 For example: Height 16512 has two encodings which should be valid according to the spec. 03804000 and 028040. However, the prior would always be rejected due to the implementation of the BIP34 height check.
No reviewsBIP8: Make signalling during LOCKED_IN recommended rather than mandatory
With the addition of the MUST_SIGNAL phase, signalling during LOCKED_IN is no longer needed for activation coordination, so drop it.
No reviewsAdd BIP 350 (bech32m)
See mailinglist discussion here: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-January/018338.html
No reviewsbip-0141: clarify the sigop count calculation for CHECKMULTISIG
This makes the behaviour of the reference implementation clear for this computation, which was implied by the previous sentence but not explicited in the next one.
No reviewsREADME: Link BIP 2 for submissions
Update bip-0079.mediawiki
Fixed a couple of spelling errors.
No reviewsBIP-322: minor clarification
BIP 0085: Add link to JavaScript library implementation
This PR updates the link to @ethankosakovsky's python library and adds an additional link to a JavaScript implementation.
No reviewsBIP-322 major fixes (verification, etc)
Several critical fixes to BIP 322. (Verification was broken, etc.)
No reviews[WIP] bip-322: strip out proof-of-funds related stuff and fix several issues
Simplifies BIP-322 to ONLY address signing/verifying a message, removing traces of proof-of-funds. Also adds some missing fields that were asked for, such as lock time and sequence. The intention is to make a separate BIP which builds on top of this one for the proof of funds part. Edit: I am still trying to figure out this and a separate BIP which addresses the proof of funds part. Not ready for merging yet.
No reviewsBIP 155: addrv2 BIP proposal
Proposal for wider v2 address messages. Last time this went around (as a github gist) there were some considerations still to be discussed, for lack of a working mailing list I'll post them here: ## Considerations * ''Client MAY store and gossip address formats that they do not know about'': does it ever make sense to gossip addresses outside a certain overlay network? Say, I2P addresses to Tor? I'm not sure. Especially for networks that have no exit nodes as there is no overlap with the glob
No reviewsBIP174: add `_IN_` to names of new hash preimage fields
As observed in https://github.com/bitcoin/bips/pull/955 input fields should have `_IN_` in their names.
No reviewsbip-0032: remove the 'Implementations' section
~~This links to a (basic) Python3 implementation which passes all the bip's test vectors.~~ ~~There are already two links to Python implementations but both are using Python2, which was EOL at the begining of the year.~~ https://github.com/bitcoin/bips/pull/962#issuecomment-668274236
No reviewsBIP 2: Add obsolete status to process image
Add obsolete status to status diagram in the **BIP status field** section.
No reviewsBIP8: clarify timeoutheight behaviour and requirements
When lockinontimeout is true, we don't transition directly from STARTED to LOCKED_IN, so don't imply that we do. If startheight or timeoutheight are not on a retarget boundary, they behave as if they had been rounded up to the next retarget boundary, so to keep things simple, require them to be at a boundary. If timeoutheight is less than two retarget periods later than startheight, behaviour when lockinontimeout is true (one retarget period of STARTED, one of MUST_SIGNAL, one of LOCKED_IN, th
No reviewsbip-325: add Anthony Towns to authors and change status to Proposed
A bit late, but AJ ultimately ended up rewriting a big chunk of the proposal for the betterment of mankind and should be listed as one of the authors. Also requesting status change to "Proposed" as I consider the BIP complete.
No reviewsbip-325: correct placement of challenge
In https://github.com/bitcoin/bips/pull/1003#discussion_r499466365 (where I adopt the approach here), it is pointed out that the message signature going into the scriptPubKey of the spending transaction is weird. It should go into the scriptSig and/or scriptWitness, and the scriptPubKey for the spending tx is OP_RETURN.
No reviewsBIP155: Mention SHA3-256 explicitly
It seems better to clarify that `CHECKSUM` in Tor onion v3 address uses SHA3-256 hash function.
No reviewsUpdate bip-0119.mediawiki
"susceptibility", but meaning is clear without this word
No reviewsBIP 325: update signet genesis block
Updates the signet genesis block with higher difficulty and a later timestamp, matching bitcoin/bitcoin#18267 . The new difficulty is the lowest possible such that the target multiplied by two weeks multiplied by 4 (see bitcoind's `CalculateNextWorkRequired()` function) doesn't overflow a uint256.
No reviewsBIp 174: fixing typo in rationale reference with closed tag
BIP 174: rename responsibilities->roles to match Bitcoin Core
[Bitcoin Core uses "roles" instead of "responsibilities"](https://github.com/bitcoin/bitcoin/blob/master/src/psbt.h#L559) and it makes semantical sense (plus less verbose).
No reviewsUpdate bip79 status
This should have been in #965
No reviewsBIP39: Add swift implementation
Pure Swift implementation without any third-party dependencies.
No reviewsFixing spelling in BIP 9
course grained => coarse-grained
No reviewsAdded MnemonicSwift as Swift impl for BIP-39
BIP155: clarify variable integer format and change time to fixed 32 bit
* Clarify that by `VARINT` (variable integer) we mean [`CompactSize`](https://en.bitcoin.it/wiki/Protocol_documentation#Variable_length_integer), not `VARINT` (as in the source code) (huh!?). Relevant IRC discussion: http://www.erisian.com.au/bitcoin-core-dev/log-2020-07-27.html#l-94 * Change `time` to fixed 32 bits as that will work until year 2106, not just 2038 and takes 1 byte less than a variable integer format.
No reviewsbip-325: change signature scheme to be tx-based
This changes the block signing algorithm for signet to be based on tx validation instead of a custom method. In particular, this allows the generalises the scheme so that new signets can make use of new signature/scripting methods (such as schnorr or musig) when they are added. Note: this is incompatible with existing signets and requires a chain restart.
No reviewsBIP 325: correct byte count for compact size
For 4-byte-push case, the push opcode was not counted; the length element is 1-5 bytes, not 4. Also tweaks the 'signet header' name (removing 'scriptSig').
No reviewsBIP174: add hash preimage fields to inputs
These fields are needed to solve miniscripts, which may have hash preimage challenges. See https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-March/016720.html for some earlier (very short) discussion.
No reviewsbip-0325: clarify the OP_TRUE challenge special case
While `OP_TRUE` challenges have been implicitly accepted until now, it was never defined exactly how these should be solved. This adds an exception for the case where the challenge is `OP_TRUE`, that the solution must be *absent*. I.e. not even an empty signet commitment may be present, or the block should be considered invalid. Pros: this means a signet node with challenge `OP_TRUE` works *exactly the same* as testnet/mainnet, in terms of block generation (i.e. `generate*` RPC functions in Bit
No reviewsUpdate bip-0001.mediawiki
It seems the date is wrong for when this BIP was created. I see here (https://sourceforge.net/p/bitcoin/mailman/message/28106734/) it looks like it was published on 9/19/11. I don't see any earlier entries on the mailing list that would suggest the 8/19 date is accurate (but could be wrong).
No reviewsBIP340 updates: even R, new tags, small fixups, clarifications
Two semantics changes: * Change the R point to be implicitly even (rather than implicitly square; see https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-August/018081.html for discussion) * Change the tags for hashing from "BIP340/" to "BIP0340/", to guarantee no collisions with the previous draft. There are also a number of changes to the document that do not change semantics, but just improve clarity, or fix typos.
No reviewsBIP 119: CHECKTEMPLATEVERIFY
I believe now is an appropriate time to apply for a BIP number/Draft Status for OP_CTV. A few elements will require updating before the BIP moves out of draft (e.g., the activation dates) but activation dates are a separate discussion from the technical considerations which are the focus of this BIP.
No reviewsBIP 174: Specifiy that the 32 bit ints are unsigned
Update bip79 status
Bip78 now replaces bip79. https://github.com/bitcoin/bips/pull/923#issuecomment-634928082 @RHavar
No reviewsBIP 342: be slightly more explicit about codesep_pos
Felt this could be under-defined as-is, and if this is wrong, would be nice to have correct text in its place to clear up the confusion @sipa
No reviewsBIP 174: Fix formatting changes
Replaced `<tt>` with `</tt>` that fixes the rendering of the current BIP174. Fixes all symbols `{` to be displayed correctly.
No reviewsBIP 339 clarifications
Thanks @jnewbery for making the initial edits in #961; I went ahead and made the last edit I wanted in here to clarify the specification.
No reviewsBIP 78: Add payjoin proposal
Previous discussion at https://github.com/NicolasDorier/bips/pull/3 Submitting to mailing list.
No reviewsUpdate bip-0078.mediawiki
Fix a few links.
No reviewsReject BIP-0099 (expired)
The hard/soft-fork terminology, while widely used, is not clear cut, and given that this has not advanced, it would be best to reject this per BIP-0002 expiration rules. @jtimon
No reviewsReject expired block size BIPs
These BIPs all suggest changing the block size, they did not get consensus, they did not get a fork, they expired and are now only historically relevant. Marking them as expired per BIP-0002 expiration rules.
No reviewsFinal BIP-0090 (Buried Deployments)
The linked Bitcoin Core PR has been merged.
No reviewsBIP8: Fix pseudocode starting 1 block early
I'm pretty sure this is what makes sense and what the reference implementation does.
No reviewsBIP174: Clarify that both UTXO types are allowed
Fix bip85
1. changed `parse256(IL) ≥ n or ki = 0` --to--> `parse256(IL) is 0 or ≥ n ` as there is no new child key `ki` created via `parse256(IL) + kpar (mod n)` therefore it should be clear that we want to check if `parse256(IL)` is not 0 as in master key generation (bip32) not some `ki` that is not even defined. 2. also added incorrect key warning to XPRV part where it should be checked either 3. incorrect key warning is now placed in footnotes
No reviewsBIP85: Fix wrong test vector
There seems to be an error in the entropy of the Test Vector in BIP85. * In test case1, `DERIVED KEY` is correct, but `DERIVED ENTROPY` is wrong. `efecfbccffea313214232d29e71563d941229afb4338c21f9517c41aaa0d16f00b83d2a09ef747e7a64e8e2bd5a14869e693da66ce94ac2da570ab7ee48618f7` is correct. * In test case2, `DERIVED KEY` is correct, but `DERIVED ENTROPY` is wrong. `70c6e3e8ebee8dc4c0dbba66076819bb8c09672527c4277ca8729532ad711872218f826919f6b67218adde99018a6df9095ab2b58d803b5b93ec9802085a690e` is c
No reviewsReject BIP-0083 (three years inactivity)
According to the expiration rules of BIP-0002, I am permitted to request this change even though I am not the author.
No reviewsBIP 339: WTXID-based transaction relay
I proposed this on the bitcoin-dev list back in February, so I'd like to request a BIP number be assigned to this.
No reviewsbip-325: update PR link
BIP 85: Deterministic Entropy From BIP32 Keychains
I would like to request a BIP number for this BIP
No reviewsBIP174: Input Finalizer finalized fields clarifications
While the Transaction Extractor section calls out the 0x05 Finalized scriptSig and 0x06 Finalized scriptWitness, this wasn’t as clear in the Input Finalizer section.
No reviewsbip-341: Commit to all scriptPubKeys in SigMsg
As discussed [on the mailing list](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017801.html). CC @sipa @ajtowns
No reviews[BIP-0137] Correct small mistakes
RecId indicates address/script types not key types (technically there is no key type). Value for P2WPKH is 39 not 35. Turned ranges to a bulleted list.
No reviewsAdded reference to Java implementation for BIP-39
bip-0011.mediawiki: Fix trivial typo
Fixed a minor typo. Added a required comma. Three-party escrow (buyer, seller and trusted dispute agent) --> Three-party escrow (buyer, seller, and trusted dispute agent)
No reviewsBIP 39: Аdd swift library with multi lang support
Add one more swift library to generate mnemonics (with multi lang support) Here is an implementation: https://github.com/matter-labs/web3swift/blob/e36e767eb2de26decb0c157aeef2d023a1175076/Sources/web3swift/KeystoreManager/BIP39.swift#L72
No reviewsbip-322: simplify proposal to single proof case
Mark BIP-0043 as final
Widely in use and used by BIPs 44, 45, 47, 49, 80, 81, 84, and 175 according to [luke-jr](https://github.com/bitcoin/bips/pull/912#issuecomment-621894238) @prusnak @slush0 Please acknowledge.
No reviewsBIP 39: Update Rust implementation
The currently listed Rust implementation of BIP 39 doesn't pass the reference implementation's test vectors. See --> https://github.com/infincia/bip39-rs/issues/21
No reviewsBIP 340 improvements
This makes a number of changes to BIP 340: * The tie-breaker for public keys with implicit Y coordinate is changed from square to even. This improves signing speed, and makes integration with existing key generation easier. This also has implications for BIP 341. * The nonce generation function is improved to take certain failure scenarios into account (precomputed public key, fault injection attacks, power analysis). * Recommendations around using of signing-time randomness and verification are
No reviewsBIP-0119 Simulation Fixes
This PR fixes two minor issues in the simulation used to generate the graphics for BIP-0119. 1) Use the same random seed across runs of the simulation; this ensures that it's an apples-to-apples comparison 2) Fix an issue where a distribution was poisson and not exponential as it should have been. Poisson and exponential have the same mean as used, but exponential has mean squared variance, resulting in the curves for Congestion Controlled transactions being too "smooth".
No reviewsbip-325: genesis block/message start
The genesis block is made static, and the message start is made dynamic based on the sha256d of the block script. See https://github.com/bitcoin/bitcoin/pull/16411#issuecomment-577999888
No reviewsReject BIP-0036
According to expiration rules, this does not need consent, since it has expired.
No reviewsMark BIP-0152 as Final
This has been implemented and is in wide usage.
No reviewsReject BIP-0033 (expired)
Requesting this even though I am not the author. BIP-0002 allows me to since 3 years have passed.
No reviewsBIP 174: Specify that separator only appears at end of the map
This can be confusing where someone could think the separator separates the pairs and not the maps.
No reviewsReplace elixir bip39 implementation
Follow up to #883 Advantages: - 100% test coverage + [CI](https://github.com/aerosol/mnemo/actions) set up - smaller tests that strictly address properties of the specs - documentation - [vectors.json](https://github.com/aerosol/mnemo/blob/master/priv/vectors.json) identical to [Trezor's](https://github.com/trezor/python-mnemonic/blob/master/vectors.json) + tests for seed verification with a passphrase - idiomatic code, no compilation warnings, no unnecessary conversions to strings cont
No reviewsBIP 146: Low S values signatures
This BIP specifies proposed changes to the Bitcoin transaction validity rules to restrict signatures to using low S values.
No reviewsBIP-0008 rejected (expired)
According to the expiration rules of BIP-0002, I am permitted to request this change even though I am not the author.
No reviewsTypo in BIP340
~~pubslishing~~ -> publishing
No reviewsFix links in bip-0119.mediawiki
One of the links is a 404: https://github.com/jeremyrubin/lazuli] And the string "youtu.be" is blacklisted (for unknown reason!?) by default mediawiki installations. This commit fixes those issues and changes all links to use the same syntax.
No reviewsUpdate bip-0119.mediawiki
Fix typo.
No reviewsFix Colorings in BIP-0119 states.svg
One of the workshop participants pointed out that the colors were mislabeled in one of the diagrams.
No reviewsbip-0340: typo change intent to intend
BIP 340: Recommend synthetic nonces and verifying signing output
In some practical scenarios it may be easy to glitch-attack the signature challenge hash to change an output bit, which would result in nonce reuse (and an invalid signature) if no additional randomness is provided in the nonce derivation function (as mentioned by @gmaxwell in `#secp256k1`). Therefore, I suggest to recommend using synthetic nonces when these attacks are a concern. In particular, because signers usually have access to some RNG, this is almost for free. Similarly, this attack co
No reviewsBIP-0069: [trivial] expression
`Randomly order` sound a bit like an oxymoron. Maybe `randomizing the order of` is better English?
No reviewsBIP-174: add missing types to Appendix A; fix proprietary type names
PSBT_INPUT_PROPRIETARY -> PSBT_IN_PROPRIETARY PSBT_OUTPUT_PROPRIETARY -> PSBT_OUT_PROPRIETARY to be consistent with other in/out type names that use shortened `IN` and `OUT`
No reviewsBIP174: Fix wrong description about Proprietary Use Type
About BIP-174, `PSBT_GLOBAL_PROPRIETARY`, `PSBT_INPUT_PROPRIETARY`, `PSBT_OUTPUT_PROPRIETARY` key description is incorrectly described as Version Number, so it fix to Proprietary Use Type.
No reviewsBIP174: remove 'first byte is the type' comment for key data
As the key type is now defined as compact size integer, `At the beginning of each key is a compact size unsigned integer representing the type`, the comment in the first table in the document, about first byte of the key being the key type is no longer accurate. As the structure of the key data is described further in the text after the table, and the comment that it starts with the compact size integer seems a bit long to be in that table, I think it is better to just remove the comment about
No reviewsBIP-174: test data: fix value length
In the test case "Case: PSBT With invalid output witnessScript typed key", after PSBT_OUT_WITNESS_SCRIPT key with garbage data (which ends with `...478ef51309d`, follows value `2b` which would denote the length of the data value of the key-value pair. But the length of actual remaining data is only 7 bytes. Thus, an implementation that reads key-value pairs and checks for validity of the key data after it has read the current key-value pair, will not be able to hit the exact condition intended f
No reviewsBIP-0157: increase max getcfilters request to 1k blocks
In this commit, we effectively revert #699 by allow clients to request filter for up to 1k consecutive blocks. Testing in the field has shown that applications are able to reduce perceived latency from syncing to full functionality after an app has been offline for several days by batching requests for filters. A value of 100 would mean each additional day behind adds an additional round trip, resulting in 10s of seconds of lag after just a few days of being offline. A value of ~1k allows implem
No reviewsBIP 179: Name for payment recipient identifiers
This was discussed [here](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-October/017369.html) and got really good feedback. This is the BIP draft for it. Feedback appreciated.
No reviewsBIP 325: Signet
This BIP describes Signet, a proposed new network for testing purposes.
No reviewsBIP174: Remove misleading sentence
The sentence seems to suggest that the "master key fingerprint" can be the fingerprint of any intermediate node on the derivation path, which isn't true.
No reviewsBip174 extensions
This PR specifies 2 new types and clarifies multi-byte types as was discussed on the mailing list a few months ago. A version type of `0xFB` is added in the event that there is a breaking change to PSBT. A proprietary type of `0xFC` is added to allow for proprietary use types for use in private. This type is followed by an identifier string and then a vendor defined subtype. Lastly, multi-byte types are clarified. Types are redefined to be minimally encoded compact size unsigned integers so t
No reviewsBIP 158: Fix mediawiki syntax typo, Remove remnants of the second filter type
Fixes #779. This is a render issue in `<ref>` tag (c.f. https://en.bitcoin.it/w/index.php?title=BIP_0158&oldid=66816#Contents, This syntax error causes the rendering on GitHub to fail: https://github.com/bitcoin/bips/blob/b1b248fc6ade930c4c716eb9fed1b48be6796356/bip-0158.mediawiki#GolombCoded_Set_MultiMatch) Fixes #783 Fixes #799
No reviewsUpdate bip-0032.mediawiki
Outdated link
No reviewsBIP-0045 - Formatting use <code> tags
Existing doc uses \`\` around code. Proper format calls for `<code>` tags.
No reviewsBIP-154: change to withdrawn status
This idea was interesting, but did not receive enough consensus from the community so I am withdrawing the proposal. I or someone else may propose it at a later time, if warranted.
No reviewsBIP 103: Mark as withdrawn
Obviously it expired, but also see comment here: https://github.com/bitcoin/bips/pull/504#issuecomment-540776823
No reviews[Trivial] BIP69: Fix word repetition
Found two "word repetition" mistakes in the BIP. * changes modifies -> modifies * index of of -> index of
No reviewsAdd BIP 100, as currently implemented.
Constrained-increment hard fork size adjustments.
No reviews[BIP197] Fix description of Refund Period
Since Seizable Collateral script have condition that can be refund by the borrower after the Seizure Period, Therefore, I think, Seizable Collateral script is correct that the borrower can refund in Refund Period.
No reviewsbip174: Add test vector for global xpub
The global xpub by @achow101 is missing test vectors. This has already created a mismatch of implementation between NBitcoin (and thus BTCPay) and Coldcard. One of our implementation is buggy, this test vector comes from NBitcoin.
No reviewsRemove a typo in bip-0174
Just noticed while reading it, don't know if that short PRs are welcome.
No reviews[bip174] Fix typo in signer pseudo code
`innput` => `input`
No reviewsBIP 174: global xpubs serialization test vector
Adds a test vector for the global xpubs field.
No reviewsbip322: fix test-vectors
Test vector sighash was described as "sha256d(message)" but it is "sha256d(scriptpubkey || message_magic || message)". Also some formatting changes. (Sorry, I realized this after re-reading the BIP post-merge of last PR)
No reviewsSet Status für BIP49 to 'Final'
it gets used by electrum, trezor and other wallets
No reviewsUpdated BIP-0138 Comments-Summary
That opinion was unnoticed for more than a month now, maybe this helps getting other arguments that support BIP-0138.
No reviewsBIP-322 updates
* Remove ProveFunds purpose (with a note about extensibility) and fix the serialization format. * Add legacy fallback for P2PK(H) addresses, and flip "Backwards Compatibility" section. * Note about signing using privkeys directly. * Add Test Vector
No reviewsBIP 301: Blind Merged Mining (Consensus layer)
This is a draft of a bip for blind merged mining, the second of two drivechain bips.
No reviewsBIP-49 - Add Version Bytes Section
Added version bytes section in parallel with #761. - [x] Update test vectors with new version bytes cc @DanielWeigl
No reviewsBIP 158: Updated Golomb-Rice Coded sets Reference Implementation link
The current link references https://github.com/Roasbeef/btcutil/tree/gcs/gcs which is an out of date branch. I've replaced this with https://github.com/btcsuite/btcutil/blob/master/gcs
No reviewsBIP 158: remove old reference to extended filter type
[Trivial] BIP2, BIP16: fix typos
### BIP2 > Bitcoin is alive any working Bitcoin is alive **and** working ### BIP16 > There are transaction earlier than There are transaction**s** earlier than
No reviewsReject BIP-0074 (three years inactivity)
According to BIP-0002, anybody can request this change of status after three years of inactivity.
No reviewsBIP 144: Old serialization format must be used on empty witness
At least Bitcoin Core requires the old serialization format in that case, so to pretend that it is optional will only lead to confusion.
No reviewsBIP 173: Remove duplicated 'the'
Update bip-0049.mediawiki
Fix broken internal link
No reviewsBIP 143: Remove duplicated 'the'
BIP174: Include suggested sighash check
As discussed on mailing list. @achow101
No reviewsbip174: add global xpub field
Adds a global type for xpubs as discussed on the bitcoin-dev mailing list: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-April/016894.html
No reviewsRevisions to BIP 174
Describes the changes to BIP 174 as discussed on the [bitcoin-dev mailing list](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-June/016150.html). There are new tests, updated formatting, and clarifications.
No reviewsfixed minor typo in BIP 79
"assumptions" instead of "assumption"
No reviewsBIP39 French Wordlist - My proposal
@voisine Here are my restrictions: 1. High priority on simple and common french words. 2. Only words with 5-8 letters. 3. A word is fully recognizable by typing the first 4 letters (special french characters "é-è" are considered equal to "e", for exemple "museau" and "musée" can not be together). 4. Only infinitive verbs, adjectives and nouns. 5. No pronouns, no adverbs, no prepositions, no conjunctions, no interjections (unless a noun/adjective is also popular than its interjection like "
No reviewsWithdraw BIP151
The BIP151 proposal does have some practical downsides and thus a new proposal has been made (https://gist.github.com/jonasschnelli/c530ea8421b8d0e80c51486325587c52)
No reviewsBIP 127: Simple Proof-of-Reserves Transactions
(submitted to bitcoin-dev, awaiting approval)
BIP 137: Signatures of Messages using Bitcoin Private Keys
As per BIP 2 process, creating pull request with filed named BIP-XXXX.mediawiki.
No reviewsBIP 197: Hashed Time-Locked Collateral Contract
Hello all, This proposal went through the mailing list: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-March/016805.html without any further discussion. Currently this proposal has been implemented by in the ChainAbstractionLayer (https://github.com/liquality/chainabstractionlayer/tree/dev). I would like to kindly ask for BIP # assignment and have this merged into upstream bips. Cheers, Matthew Black
No reviewsbip174: Fix invalid references to per-input types 0x07 and 0x08.
Update bip-0039.mediawiki, fix broken link
BIP-84 - Add Version Bytes Section
The version bytes to produce "zpub" and "zprv" were not specified originally. @prusnak
No reviewsFix mistake in bip-0079
As pointed out by Adam Gibson on the bitcoin-dev mailing list.
No reviewsfix typos in bip79
I'm in the process of reviewing the contents of the BIP, these are just typo type edits I found while reading. Cheers.
No reviewsBIP-0158: add test cases for OP_RETURN with op codes, empty filter
In this commit, we add a new test case for a filter built from a block that has a transaction with an OP_RETURN which isn't followed by only push data items. The prior implementation for btcd (which was used to generated these test vectors), had a stricter check which caused it to add extra items to the filter. We also add a case of a block that has a single coinbase transaction, with that transaction having only an OP_RETURN output. As a result, that filter will be "empty", and is signalled by
No reviewsBIP 32: Test vectors for leading zeros
These additional test vectors will ensure all future implementations are compliant with bip32. See https://github.com/iancoleman/bip39/issues/58 and https://github.com/bitpay/bitcore-lib/issues/47 Possibly these test vectors may be useful also: [bitcoinjs-lib test for this issue](https://github.com/bitcoinjs/bitcoinjs-lib/blob/4b4f32ffacb1b6e269ac3f16d68dba803c564c16/test/fixtures/hdnode.json#L180) [bitcore-lib test for this issue (pending merge)](https://github.com/bitpay/bitcore-lib/pull/9
No reviewsBIP125: rephrase rule 2 for clarity
It's been reported that the double negative in rule 2 is confusing people (including myself, on re-read). This PR revises out both negatives and, I believe, significantly improves clarity. For reference, this document was based on the implementation in Bitcoin Core 0.12.0, which includes [these lines](https://github.com/bitcoin/bitcoin/blob/v0.12.0/src/main.cpp#L1134): ```cpp for (unsigned int j = 0; j < tx.vin.size(); j++) { // We don't want to accept
No reviewsbip-0159: Fix NODE_NETWORK_LIMITED threshold
The threshold seems to be 288 (2 * 144). https://github.com/jonasschnelli/bitcoin/blob/de74c625833bba8d8171a2d0dd6ede2e9d5da88b/src/validation.h#L207
No reviewsBIP 322: Generic Signed Message Format
Formatted version: https://github.com/kallewoof/bips/blob/bip-generic-signmessage/bip-0322.mediawiki
No reviewsAdd BIP39 Swift implementation link
I added a BIP39 Swift implementation link.
No reviewsUpdate BIP status
BIP91 -> Final BIP148 -> Final BIP149 -> Withdrawn (because it's no longer necessary)
No reviewsUpdate bip79 to require Access-Control-Allow-Origin support
Minor grammatical fixes to bip79
BIP 79: Bustapay :: a practical coinjoin protocol
Requesting a BIP number assignment
No reviewsfix bip-0016 link 404
BIP39: 'recommended size' -> 'allowed size'
https://github.com/bitcoin/bips/pull/471 for background Clarifies that the BIP only allows entropy between 128-256 bits. @dabura667 @prusnak @dcousens @rubensayshi
No reviewsBIP 310: Stratum protocol extensions
Hi, This proposal went formally through the mailing list: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-May/015978.html without any further discussion. Currently, this extension has been implemented by multiple pools. I would like to kindly ask for BIP # assignment and have this merged into upstream bips. Best regards, Jan Capek
No reviewsBIP-158: Fixing list formatting and spelling of 'license'
@Roasbeef @jimpo @aakselrod
No reviewsBip 158 updates
Add test vectors and other minor fixes.
No reviewsBIP 158: fix incorrect bullet formatting (typo)
bip174: typo in some fixtures (using wrong magic prefix)
`bin2hex("psbt\xff") = 70736274ff` A few of the invalid PSBT cases have been serialized using the wrong magic, but only in their base64 encodings. ping @achow101
No reviewsAmend BIP8 by height
BIP 112: fix typo
The sequence is relative to the input, not the transaction. This may cause confusion
No reviews[Trivial]Typos & links fix BIP 151
Came to learn - fixed a few things [trivial]
No reviewsMinor typo fix for "reservedbits" BIP
This was overlooked in #661 @odarboe @btcdrak @luke-jr
No reviewsBIP to reserve nversion bits in blockheader
BIP 156: rename figure filenames [trivial]
Updating path to BIP figures
No reviewsBIP 156: Dandelion - Privacy Enhancing Routing
Pull request for draft BIP of Dandelion.
No reviews[trivial] correct typo in bip173 (bech32)
Fix two errors in the BIP 39 French wordlist
The BIP 39 French wordlist contains two significant technical errors: - Byte Order Marker (BOM) U+FEFF at the beginning of the first line, preceding the word “abaisser”. - No newline '\n' char terminating the last line, after “zoologie”. The former may cause user loss of funds. An implementation which generates a mnemonic phrase and also turns it into a BIP 39 seed value may feed the string "<U+FEFF>abaisser" to the KDF, while displaying the word “abaisser” to the user. Of course, it cann
No reviewsTweaks to BIP 157/158
With filter sizes at ~2% of block size, reducing `getcfilter` request size to 100 corresponds to a response with equal bandwidth to ~2 blocks.
No reviewsTrivial typo fixes to bip-0118
@cdecker
No reviews[BIP174] Fix to unify Test Vector in key order of PSBT Input.
Only Test Vector for the updater that sets the SIGHASH Type, the position of the SIGHASH type of the generated PSBT payload deviates from the other Test Vector, it making testing difficult in the program. Therefore, like other Test Vector, it will better to change the Test Vector to payload generated in order of PSBT keys.
No reviewsAdditional tests for BIP 174
Add link to BIP47 test vectors
Results obtained upon implementing BIP47 for Samourai Wallet. Payment codes are calculated assuming v1 specification without use of BitMessage. Also assumes notification transaction from Alice to Bob has been sent.
No reviewsBIP 174 clarifications and move to proposed
Adds a few more clarifications that came up on the mailing list following the merge of the previous PR. Transitions BIP 174 to the proposed state.
No reviewsBIP-199 Fix list formatting
The sentence "Both parties can now construct the script and P2SH address for the HTLC." was broken with part appearing below the list item.
No reviewsBIP141: Add BIP173 to references.
@sipa @CodeShark @jl2012
No reviewsMove BIP42 and BIP173 to Final
BIP-0158: remove extended filter, remove txid from regular filter, reparameterize gcs params
In this PR, we propose a set of changes to BIP 158 (block filter digests) to reduce the size of the filters, while maintaining the same level of utility for wallets and applications that seek to utilize this new(ish) BIP. A rundown of the new changes follows: * The txid has been removed from the regular filter, as in many cases just matching on the pkScript, then checking the block locally after it matches for the _precise_ txid match is enough. I've implemented this new logic in `lnd` (as we
No reviewsBIP 173: Adds link to SLIP-0173
SLIP-0173 lists registered human-readable parts for BIP-0173, keeping the BIPs free of other cryptocurrency information. This echoes SLIP/BIP-0044 with registered coin types for HD wallet derivation paths.
No reviewsTrivial: Fix typos in BIP-118
Fix typo in BIP 125
BIPs 98, 116, and 117: Fast Merkle Trees; MERKLEBRANCHVERIFY; Tail Call Execution Semantics
BIP-178: Reword abstract to indicate it's a bitcoin address type, not…
… a public key type
No reviewsBIP 178: Version Extended WIF
BIP 118: SIGHASH_NOINPUT
> This BIP describes a new signature hash flag (sighash-flag) for > segwit transactions. It removes any commitment to the output being > spent from the signature verification mechanism. This enables dynamic > binding of transactions to outputs, predicated solely on the > compatibility of output scripts to input scripts. Opening a PR in order to get a number assigned, as pointed out by @luke-jr. I'll update the PR upon receiving a number.
No reviewsBIP 158: Change test vectors from CSV to JSON format.
The JSON format is standard for Bitcoin Core test data, and projects that copy test data from Core. This does some additional refactoring to the gentestvectors.go program. @aakselrod
No reviewsRemove 'hard fork' designation on BIP 90
#478 added a label to BIP 90 that I disagree with. While the term "hard fork" is sometimes used in the way defined in BIP 123, it also is used by many -- including the BIP 123 author -- to refer to consensus changes that require network-wide coordination in deployment to avoid a chain split[1], which is untrue for BIP 90. As the whole purpose of this BIP is explain the type of consensus change that was made and point out that the network split risk is minimal, I don't accept the label "hard fo
No reviewsBIP158: add test vectors and generation code
In this PR, we add test vectors for filter and header construction and the code to generate them. The included test vectors are for testnet with a value of 20 for P. The code generates filters and headers for values of 1 through 32 for P using testnet blocks. Currently, to run the code, the `Roasbeef` fork of `btcd` (at https://github.com/roasbeef/btcd) is required to be running locally in testnet mode; this will be changed in a future PR after the code is merged into the `btcsuite` mainline.
No reviewsBIP66: link to disclosure of consensus failure bug
BIP author: @sipa Recently, a developer learning about Bitcoin contacted me with some questions about BIP66 and I discovered through our conversation that he wasn't aware of what I believe is this important context for the soft fork. I sent him a link, but I'd like to propose linking to it directly from the BIP for the historical record. I know modifying *final* BIPs is frowned upon, so if this is unacceptable, I'll add it instead to the wiki page indicated by the Comments-URI field.
No reviewsBIP 174: Clarify that global data can be for inputs and outputs
Clarifies that global data fields redeem scripts, witness scripts, and hd keypaths can be used for data necessary for both the inputs and outputs of the transaction.
No reviewsBIP158: include the direct pkScript rather than its data pushes
In this commit, we modify regular filter construction slightly. Rather than including each pushed data in the script, we instead just include the script directly, which will eventually be hashed. The rationale for doing this is two-fold: * Most scripts today and in the foreseeable future will just be a commitment. * Including only the script itself and not the hash of the script reduces the worst case filter size. Otherwise, an attacker could include a bunch of 2 byte push dat
No reviews[trivial] Correct typos in BIP 98
Changes: least <- lest hashes <- hashses addendum <- ammendum
No reviewsBIPs 157 & 158: Block Filtering stuff
This is a revision of #609 that is intended as a replacement due to the number of substantial changes. Test vectors will be added once the BIP has been reviewed by the community and the reference implementation is updated. ### Abstract This BIP describes a new light client protocol in Bitcoin that improves upon currently available options. The standard light client protocol in use today, defined in BIP 37, has known flaws that weaken the security and privacy of clients and allow denial-of-serv
No reviewsUpdate status for segwit related BIPs
Withdrawing BIP120/121 due to security issues during soft-forks
There is an inherent problem with BIP120, Proof of Payment: If there is a soft fork, a server that verifies PoPs will accept a PoP as valid without checking any of the new Bitcoin rules. For example, a server will be fooled by a segwit transaction, because the server doesn't have a witness to verify and consequently will accept any PoP with an empty scriptSig. Since BIP121 depends on BIP120, that has to go too.
No reviewsUpdate bip-0039.mediawiki with Go lib
Add Go library
No reviewsFix single typo in BIP65 ("from" -> "form")
Current text: > Using the same scriptPubKey **from** as in the Two-factor wallets example solves both these issues. Proposed text: > Using the same scriptPubKey **form** as in the Two-factor wallets example solves both these issues.
No reviewsBIP-0117: Change semantics of multi-element tail call to not require stack elements to be exactly 520 bytes in size
This allows for more compact direct encoding of scripts of the form "pick 2 of 3 spend conditions" without enabling witness malleability in expected use cases as the components would still be checked against a pre-committed hash tree.
No reviewsBIP-0117: Correct the examples to use the most recent version of MERKLEBRANCHVERIFY
The example scripts in BIP 117 presently use an outdated form of the MERKLEBRANCHVERIFY opcode. This patch updates them to the most recent version of the specification.
No reviewsMore BIP 174 tests
Tests for BIP 174 and some wording clarifications
@dcousens, @junderw, @sipa, and @instagibbs may be interested in this. Further tests and comments would be appreciated.
No reviewsBIP 176: Utilization of bits denomination
Progress BIP173 to Proposed
I believe that the BIP173 standard is complete and won't functionally change anymore. As required by BIP2, I believe there are community plans to progress it to final (given that multiple wallet implementations support or plan to support it).
No reviewsbip-0084: add extended public keys to test vectors
BIP0039 Added Japanese wordlist
I have been testing with some colleagues to create a wordlist for BIP0039 for the Japanese language. We have decided on the current word list for the following reasons: 1. Japanese borrowed Chinese symbol character set (Kanji) are filled with homonyms that are often only discernible via the Kanji used, we thought that would lower memorability (as the words are random, and context is not possible). This is why we chose to use only the hiragana phonetic character set. 2. If the user inputs any ch
No reviewsbip159: Clarify that there is only one threshold
@jonasschnelli Changes: * The last section mentions "thresholds", while only a single threshold of 244 is specified in the bip. Clarify by changing to "threshold" * Remove internal Bitcoin Core implementation detail. This is not relevant for a bip. * Remove word "additional" when referring to safety buffer, since the safety buffer is the only buffer and not an additional one. * Remove empty section "references" * Add missing link to signaling implementation.
No reviewsBIP174: refactor responsibilities for simplicity and clarity
BIP-173: fix typo in "Created" date
I can't find much about bech32 anywhere, before March 2017. Based on the date of this commit, I think there is a typo in the date. https://github.com/sipa/bech32/commit/52b5a0fa6d3174c4150393fb7d6b58d34b4f5e0b
No reviewsBIP-2: Fix link to Bitcoin Wallet for Android's wallet/README.specs.md
"README.specs" was renamed "README.specs.md"
No reviewsBIP 175 Improvements
* Standardizing spelling of "payer". * In examples: - Added headings - Separated "document 1:" label from the contents which are actually hashed (eg "baz"). * Misc spelling mistakes. @omarshibli
No reviewsBIP39: Removed extra spacing
Cosmetic fix in 'Other Implementations' section, removed extra spacing.
No reviewsBIP175: fixed headers style
Fix broken links in BIP 13
bip-0173: test vectors, HRP, and casing requirements updates
* `a12uel5l`: vector added to demonstrate that it and its uppercase version, `A12UEL5L` are both valid and treated as equal. `segwit_addr.bech32_encode('a', [])` * `10a06t8`: vector added to demonstrate that a combined empty HRP and empty data encode to a valid Bech32 string. `segwit_addr.bech32_encode('', [])` * `1qzzfhee`: vector added to demonstrate that an empty HRP encodes to a valid Bech32 string. `segwit_addr.bech32_encode('', [0])` * `pzry9x0s0muk`: vector moved to a new section as it
No reviewsBIP39: elixir mnemonic library reference added
Remove second service bit from NODE_NETWORK_LIMITED/BIP159
This removes the split between NODE_NETWORK_LOW|HIGH and reduced the specification to a single signalling bit (bit 10) NODE_NETWORK_LIMITED with a min height of 288 blocks. The implementation has already been updated: https://github.com/bitcoin/bitcoin/pull/10387
No reviewsis->are in BIP 141
BIP-0175: fixed typo.
This PR fixing typo "excpet" to "except".
No reviewsBIP 174: Partially Signed Bitcoin Transaction (PSBT) Format
This proposal was [submitted to the mailing list](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-August/014838.html) on August 18th and has received no relevant commentary, so I am now requesting a BIP number.
BIP 175: Pay to Contract Protocol
This proposal was submitted to the [mailing list](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-September/014896.html) on August 14th, we got feedback and addressed the concerns, I am now requesting a BIP number.
No reviewsadd libwally as bip39 implementation
Add extra test cases & implementations to BIP173
Correct typo in BIP 144
Fix typo "inefficinent" => "inefficient" in BIP 144
No reviewsBIP 49: Derivation scheme for P2WPKH-nested-in-P2SH based accounts
A derivation scheme similar to BIP44 for the upcoming P2WPKH-nested-in-P2SH addresses. The test vectors aren't finished yet, as I choose to have the BIP-number as base path (like BIP44) in it. I'll update them as soon as this gets a preliminary number assigned.
No reviewsBIP 159: NODE_NETWORK_LIMITED service bits
The proposal has been submitted to the bitcoin mailing list on May 11th 2017. https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-May/014315.html Feedback has been received and the proposal has been overhauled.
No reviewsBIP39: add link to libbitcoin implementation.
Update BIP173: new reference impls + tests fix
fixed small typo [in BIP 30]
Update BIP91 reference implementation repository
Clarify when BIP91 will cease to be active
Use a smaller deployment period for BIP91 but don't enforce until active.
This gives a ~2 day upgrade period for miners to enforce mandatory signalling after lock-in and makes activation potentially faster.
No reviewsUpdate BIP91 confirmation window and enforcement.
This should make BIP91 activation faster and less likely to conflict with BIP148.
No reviewsBIP 154 cleanup: remove TODO entry
BIP 154: Rate Limiting via peer specified challenges
small typo in bip47
Fix BIP91 typo
BIP 91: Reduced threshold Segwit MASF
Mailing list discussion: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-May/014380.html
No reviewsreadme: Clarify status for formally accepted BIPs
In the table there are some BIPs with a status of `Active`, and others with a status of `Final`. Just wanted to submit this slight text change for review to the README to indicate that both mean a BIP is formally accepted.
No reviewsBIP 115: Generic anti-replay protection using Script
Add extra reference implementations to BIP 173
BIP 135: Generalized version bits voting
Requesting a BIP number for the included proposal. Original bitcoin-dev mailing list post: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-April/013969.html Reference implementation: https://github.com/BitcoinUnlimited/BitcoinUnlimited/pull/458
No reviewsBIP8: clarify deployment terms
BIP 149: Segregated Witness (second deployment)
fix dead link in BIP66
The DER specification link in BIP66 seems to be dead. I could not find the 2008 pdf in any [archive](http://archive.is/Yxwln) pages. Current version is available at the url: https://www.itu.int/rec/T-REC-X.690-201508-I/en but they seem to be ruining these urls with every update, so I changed the url to the listing page. Optionally info could be added that the BIP is based on the 2008-11 version, but the BIP only touches the basics of the encoding which I think shouldn't change.
No reviewsBIP 8: Version bits with optional guaranteed lock-in
BIP 8 Bug fix
BIP 9: GBT updates for versionbits
Split out of #365 (ie, without segwit and misc changes)
No reviewsBIPs 30, 32, 62, 66, and 103: License under BSD-2-Clause terms
``` [Thursday, January 19, 2017] [7:46:36 PM UTC] <luke-jr> sipa: if you get a minute, can you give me at least a text-"verbal" ACK for some copyright license to put on BIPs 30, 32, 62, 66, and 103 please? is BSD-2-Clause okay? [Thursday, January 19, 2017] [7:47:01 PM UTC] <sipa> luke-jr: ACK on 2-clause BSD for 30,32,62,66,103 [Thursday, January 19, 2017] [7:47:13 PM UTC] <sipa> (and for any other BIPs I contributed to) ```
No reviewsBIP 141 and 145: GBT updates for SegWit
@sipa @CodeShark @jl2012
No reviewsBIP 145: getblocktemplate Updates for Segregated Witness
README: Include BIP Layers in index
BIP 123: Clarify how used with non-Standards BIPs, and update list
Also: It's unclear where to draw the lines for API/RPC. The previous draft had Stratum (which is being removed here since there sadly isn't a BIP yet) as Applications and GBT as API/RPC, when both protocols serve the same fundamental purpose. Need to get this cleaned up to move forward on both it as well as BIP 2... @CodeShark
No reviewsUpdate BIP 109 status Draft->Rejected
All proponents of BIP 109 seem to agree it is dead
No reviewsbip-0050: Final update to what actually occurred
@gavinandresen This look okay? Particularly note the addition of the public domain release.
No reviewsDefer BIP 2
Apparently this cannot achieve consensus for now, so shelving it until something changes.
No reviewsBIP 171: Currency/exchange rate information API
Discussion: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-March/013660.html
No reviewsBIP 180: Block size/weight fraud proof
Further simplify BIP8
There is no material change to the specification with this pull request. However, lockinontimeout is just an implementation detail, if not set the workflow is BIP9. As a result, BIP8 is more concisely represented in the simplified state which presents just the BIP8 workflow.
No reviewsUpdate BIP148
BIP 199: Hashed Time-Locked Contract transactions
BIP 148: Mandatory activation of segwit deployment
Remove duplication BIP69
The sentences in the motivation section of BIP69 are duplicated. So I deleted it.
No reviewsBIP 104: 'Block75' - Max block size like difficulty
Clarify SPV node usage of BIP 152
This does not change any implementation details of the protocol, only encourages SPV client authors to avoid high-bandwidth mode due to lack of validation.
No reviewsBIP 90: Buried deployments
I think this is ready to move forward, can this be assigned a BIP number?
add Copyright to BIP67
as requested for preperations for BIP2 @afk11
No reviewsBIP75 Update for SEC Formatted Public Keys and Unique Identifier
This update is based on the results of a recent implementation of BIP75 addressing three issues that were encountered: 1) Further specification of the format for sender_public_key and receiver_public_key 2) Set the identifier field of ProtocolMessage / EncryptedProtocolMessage to be required 3) Add entropy for ProtocolMessage / EncryptedProtocolMessage identifier
No reviews[BIP 152] Update compact block BIP for banning behavior
@TheBlueMatt I tried to draft something to reflect the p2p banning behavior being properly implemented by signaling the version bump, how does this look to you? In particular, do you think the first SHOULD NOT I added (regarding not banning peers for an invalid compact block) should be a MUST NOT?
No reviewsBIP 134: Flexible Transactions
Introducing Flextrans. Requesting a BIP number assignment. Thank you!
No reviewsBIP49 - fix wrong cointype for test vectors - use m/49'/1'/0' for testnet
Just noticed that I used the wrong coin-type for the derivation path (0' for prodnet instead of 1' testnet). Fixed it and recalculated the test vectors.
No reviewsAdd examples to show FindAndDelete is not used in BIP143
Developers must pay attention to the BIP143 spec that `FindAndDelete` is not used. This gives some examples. Also edited the descriptions for `CODESEPARATOR` to avoid misunderstanding
No reviewsAdd start day for BIP147
BIP 141 start and end time
BIP2: fix typo
BIP2: Remove Superseded from choices for Status
The section about the BIP status field only defines "Replaced or Obsolete (which is equivalent to Replaced)", so remove "Superseded" for clarity.
No reviewsBIP49 - calculate testvector
place-holders replaced and testvectors calculated
No reviewsAdd policy descriptions to BIP141 and 143 and address some nits.
minor: fix link to BIP 22
Update BIP 141 to include definition of Virtual transaction size and Transaction weight
Virtual transaction size and Transaction weight are not consensus-critical, but are used in bitcoin-core IsStandard() policy, and v0.13.0+, RPCs calls return virtual transaction size instead of serialized transaction size. Although non-normative, BIP 141 should include definitions for these concepts. https://github.com/bitcoin/bitcoin/pull/8747 is a PR to fix the RPC help text to refer to virtual transaction size instead of transaction size.
No reviewsBIP112: fix example
CHECK(MULTI)SIG should be used.
No reviewsBIP126: Clarify interaction with BIP69
BIP 147: Dealing with dummy stack element malleability
BIP146: title and content changed
BIP75 Update: Versioning, Cancellation, Unknown Message Type, New PKI_TYPEs, Status Codes, Motivation
Added: - Versioning - Cancellation - Add UNKNOWN_TYPE to ProtocolMessageType enum in paymentrequest.proto and BIP75 text (based on suggestions from http://androiddevblog.com/protocol-buffers-pitfall-adding-enum-values/) Updated: - Additional pki_type values - Updated status_code values - Update BIP75 Motivation and use cases to provide more color around reasoning and use of BIP75 NOTE: The BIP75 language no longer contains a description of the KYC compliance use case, as it is a single, very s
No reviewsBIP146: change title and add NULLDUMMY rules
NULLDUMMY is a trivial softfork to fix malleability related to the extra stack element consumed by CHECKMULTISIG(VERIFY). NULLDUMMY is probably more important than LOW_S since without that an attacker may replace the stack element with any value.
No reviews[bip151] slightly increase robustness of the re-keying
The current re-keying procedure does allow an attacker knowing the current symmetric cipher key while **not** knowing the session-id (derived from the ECDH secret) to "survive" the re-keying. This will slightly increase the prediction resistance. Also includes a ugly typo in the `hkdf` key. Reported by @ccjj. cc: @ccjj
No reviewsTypo in change to BIP50
@luke-jr @gavinandresen
No reviewsBIP114: MAST proposal v2
BIP151: Clarifications on sequence numbers.
~~This clarifies that the ciphertext payload length is meant to update the AEAD as AAD. OpenSSH does this, but in a naive way, [as seen here](https://github.com/openssh/openssh-portable/blob/60c2c4ea5e1ad0ddfe8b2877b78ed5143be79c53/cipher-chachapoly.c#L93) (aadlen is 4 -- poly1305_auth is called on both size and payload).~~ ~~Although the payload length _is_ AAD, OpenSSH violates [both](https://tools.ietf.org/html/rfc7539#section-2.8.1) [RFCs](https://tools.ietf.org/html/draft-agl-tls-chacha20p
No reviewsBIP-0141: Link to permanent PR of reference implementation
analogue to https://github.com/bitcoin/bips/commit/ecfb7ebbca3488cd4c1e11210cbc5914a9228c67
No reviewsBIP141 fix
@sipa 1. Make the use of "witness program" consistent 2. Fix: P2WSH script has a 10000 byte limit 3. Remove the mention of extending 32 bytes witness program with softfork
No reviewsbip141: Change 'block cost' to 'block weight'
The term 'block cost' led to confusion about the unit that it is expressed in, in that it expressed monetary cost. Change it to a more general term 'block weight'. This was discussed in the [2016-07-14 Bitcoin Core developer meeting](http://www.erisian.com.au/meetbot/bitcoin-core-dev/2016/bitcoin-core-dev.2016-07-14-19.00.html).
No reviewsBIP 39: remove "public beta" from blockchain.info link
This is now in the default wallet.
No reviewsBIP 39: link BitcoinJS & blockchain.info implementation
BIP 39 mnemonics are featured quite prominently in the UI as well.
No reviewsbip141: clarify that marker is 1 byte
Might seem superfluous, but I would find the clarification meaningful, even if the given literal is inherently 1 byte.
No reviewsAdd BIP21 Javascript library
BIP141 script failure clarifications
Footnotes to clarify some special conditions which witness scripts will fail @sipa @instagibbs @gmaxwell
No reviews[BIP151] Switch from plain HMAC_SHA512 KDF to HKDF
HKDF seems to be the better approach to derive symmetric cipher keys from the ECDH shared secret. Discussion: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-July/012878.html ping @Roasbeef @sipa @gmaxwell @zooko
No reviewsAdd BIP 126
Update BIP9 assignments list
This PR updates the BIP9 bit assignments list since the `segwit` deployment is now active on testnet. It also changes the `csv` testnet activation height from "770111" to "770112" since that is the first block where the deployment is active.
No reviewsBIP68/113 for generation transaction
To clarify the applicability of BIP68 and 113 to generation transaction
No reviewsBIP 152: Link to permanent PR of reference implementation
BIP112/114 example fix
The "key hash" in these examples are followed by a CHECKSIG, so that should be "pubkey", not "key hash"
No reviewsClarify BIP9 threshold
The threshold for should be ≥1916 for mainnet, ≥1512 for testnet. https://github.com/bitcoin/bitcoin/blob/v0.12.1/src/versionbits.cpp#L69 https://github.com/bitcoin/bitcoin/blob/v0.12.1/src/chainparams.cpp#L84 https://github.com/bitcoin/bitcoin/blob/v0.12.1/src/chainparams.cpp#L177
No reviewsadd BIP39 javascript library
BIP143: typo fix
BIP143: private key for example
BIP143: Corrections and examples for OP_CODESEPERATOR
Elaborate hash function design in BIP152
BIP141: extend max witness program size to 40 bytes
The maximum witness program size is increased from 32 to 40 bytes. This provides extra space to specify script version (for originally 16 upgradable versions to up to 16 \* 2 ^ 64)
No reviewsAdd BIP9 assignments
Add a place to track various BIP9 deployment proposals. As per IRC meeting http://www.erisian.com.au/meetbot/bitcoin-core-dev/2016/bitcoin-core-dev.2016-05-05-19.01.html
No reviewsUpdate to new BIP 152 Protocol Flow
Replace my generic bip@ email with bip-specific emails everywhere
BIP 152: Compact Block Relay
This is a first draft of BIP 152 - Compact Block Relay.
No reviewsBIP75 Simplification and Enhancements
This update for BIP75 makes the following changes: - Remove duplicate, encrypted versions of each Payment Protocol message - Add encapsulating messages that allow for both plaintext and encrypted messaging as well as status messaging within the protocol - Change the AES-256 mode to GCM (from CBC), and including status_code || status_message as Additional Authenticated Data in the GCM cipher - Update use of ECDH X-point to instead use SHA256(ECDH().x) to match up with the libsecp256k1 implementat
No reviewsError in BIP0009 code example
A BIP in state STARTED that did not reach the threshold would disappear instead of stay in STARTED. The hex error made me looking for a bug for almost an hour after copy pasting the hex values.
No reviewsBIP 151: Peer-to-Peer Communication Encryption
The Bitcoin network does not encrypt communication between peers today. This opens up security issues (eg: traffic manipulation by others) and allows for mass surveillance / analysis of bitcoin users. Mostly this is negligible because of the nature of Bitcoins trust model, however for SPV nodes this can have significant privacy impacts [1] and could reduce the censorship-resistance of a peer.
No reviewsUpdate bip-0112.mediawiki
CHECKLOCKTIMEVERIFY is absolute (not relative) isn't it?
No reviewsBIP141: BIP9 parameters for testnet
BIP141 clarifications and formatting
Add rationale of block cost Change the name of "witness nonce" to "witness reserved value" Update link to reference implementation Formatting
No reviewsUpdate bip-0068.mediawiki
Fix typo.
No reviewsUpdate BIP 144 'havewitness' to service bit
As per the meeting: http://www.erisian.com.au/meetbot/bitcoin-core-dev/2016/bitcoin-core-dev.2016-04-28-19.00.html Updates BIP 144 to specify the use of the NODE_WTINESS service bit instead of a havewitness message.
No reviewsBIP-0047: version 2 payment codes
Define a bloom filter-based notification method that does not use notification addresses.
No reviewsBIP141: Add P2SH-P2WPKH example and clarify block cost
fix BIP141 nested P2SH scriptSig byte representation
The byte representation of "<0 <32-byte-hash>>" is "0x220020{32-byte-hash}" What was listed here would be the byte representation of "0 <32-byte-hash>". The text explains that there is only one item in scriptSig, so I'm guessing the byte representation is wrong. Also the corrected byte representation would produce the same sig/pubkey described in P2WSH after following the bip16 rules.
No reviewsBIP143: Explicitly mention the SignatureHash function
The purpose of BIP143 is to propose an updated SignatureHash function. However, the only keyword reference in the BIP text is "sighash" buried near the end, meanwhile some of the existing source code floating around does not use the name "transaction digest algorithm". Hopefully over time this will change. On a related note, SignatureHash is a really bizarre name....
No reviewsBIP143: fix typo ("including")
Minor typo fix for BIP143, "inculding" -> "including".
No reviewsBIP143 clarifying semantics of ACP|SINGLE
This PR clarifies the semantics change when ANYONECANPAY is used with SINGLE, with other minor clarifications
No reviewsBIP-0047: Clarify usage and format of outpoints
Introduce the terms 'designated input' and 'designated pubkey' for clarity Update reference link for outpoint to a more canonical source to resolve ambiguity regarding the binary representation of txids. Based on feedback from @SamouraiDev
No reviewsBIP47 clarifications
Update explanations to resolve unclear sections, based on recent feedback.
No reviewsBIP114: Clarifying reference implementation
BIP 114: Merkelized Abstract Syntax Tree
This is a post-segwit BIP to implement Merkelized Abstract Syntax Tree
No reviewsBIP141: commitment clarification. BIP144: new diagram
@sipa @CodeShark BIP141: witness commitment is optional if the block has no witness data BIP144: new diagram without spelling check lines
No reviewsBIP143: Provide private key used in the example
Set deployment schedule for BIP 68,112,113
BIP 75: Out of Band Address Exchange using Payment Protocol Encryption
Pull request for BIP75 as discussed on the mailing list
No reviewsSmall improvements to BIP9
Suggested by @rustyrussell and @morcos.
No reviewsAdded paragraph about address re-use for BIP131
So many people are saying this BIP is bad because it encourages address re-use. I added a paragraph clarifying how address re-use is affected by this BIP.
No reviewsAdded clarifications to BIP0009.
I added explicit parameters for deployment at the beginning of the specification. I think this greatly clarifies the spec for someone approaching it for the first time. We've decided for now not to consensus-enforce the bit states, making the RFC language that had been previously proposed a bit superfluous. The only thing that remains consensus-enforced is the moment of activation which should be clear from context.
No reviews[BIP 2] License header in preamble
BIP1: Formatfix for auxiliary files section and a small typofix
This pull request contains two trivial changes for BIP1: - Formatfix the "auxiliary files" section, and also consolidating the sentence about images into the section about auxiliary files. - Typofix "sumission" -> "submission" in the changelog section. and two less-than-trivial changes: - Make "BIP Header Preamble" a subsection of "BIP Formats and Templates". - Make "auxiliary files" a subsection of "BIP Formats and Templates".
No reviewsSmall typo in bip-0009.mediawiki
[Bip 133] Fix typos
@morcos
No reviewsFurther tweaks to BIP9
Remove BIP68's dependence on this BIP. Remove deployment details.
Clarify non-dependence on BIP113
BIP 133: feefilter message
133 assigned by @luke-jr See mailing list discussion at: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-February/012449.html
No reviewsBIP 69: Add link to Blockchain.info implementation
We might switch to the BitcoinJS implementation in the future. cc @kristovatlas
No reviewsAdd BIP38 Javascript implementation
add link to btcsuite implementation of bip 0069
Hi, adding a link to recently merged golang implementation of bip 0069.
No reviewsUpdate BIP112 reference example
Adding crypzo to BIP44 supported wallets
Some of the source will be released soon.
No reviewsWithdraw BIP 101 proposal
It is clear that BIP101 will not be adopted, so I'm withdrawing it.
No reviewsUpdate BIP68 implementation to match spec
Refs bitcoin/bitcoin#7184
No reviewsBIP109: BIP102 variation for a 2mb block size bump
Thanks to @luke-jr for promptly assigning a BIP number. This was discussed on the bitcoin-dev mailing list, but that discussion went sideways fairly quickly (as do all discussions about hard forks, it seems). It is implemented in Bitcoin Classic.
No reviewsBIP 68 Nit: fix spelling Contrats -> Contracts
Minor update of implementation for BIP68
This patch syncronised latest implementation Adds comments, adds assert()
No reviewsBIP34 correction: the height has a sign bit
The height has a sign bit so a 3-byte height should last for 150 years instead of 300
No reviewsAdded bip39 Italian wordlist
Here you can find the proposed Italian wordlist for BIP0039. Words have been chosen using the following rules: 1. Simple and common italian words. 2. Length between 4 and 8 characters. 3. First 4 letters must be unique between all words. 4. No accents or special characters. 5. No complex verb forms. 6. No plural words. 7. No words that remind negative/sad/bad things. 8. If both female/male words are available, choose male version. 9. No words with double vocals (like: lineetta). 10. No words al
No reviewsBIP74 Draft
PaymentRequests currently support any valid script serialized in the PaymentDetails protocol buffer. Zero value outputs are ignored and not included in the transaction. This means that OP_RETURN scripts are currently supported but they must have a > zero value, effectively destroying the value assigned to that output. This BIP allows zero value PaymentRequest outputs ONLY if the script is an OP_RETURN.
No reviewsBIP141, fix small typo
Updated BIP table
BIP141: Add 520 bytes witness stack limit
@sipa
No reviewsImprovements to BIP 122
Grammar, punctuation and labeling improvements meant to clarify the BIP and improve readability.
No reviewsBIP141 Non-upgraded wallet description
Update non-upgraded wallet description; remove BIP142
No reviewsBIP 80 & 81: Hierarchies for Voting Pool Deterministic Multisig Wallets
Two informational BIPs are submitted for voting pool HD wallets. This wallet format follows the BIP43 recommendation to use reserved BIP numbers to avoid namespace collisions. The purpose of the wallet formats is to efficiently implement multisig, FIFO cold storage for bulk bitcoins and for colored bitcoins.
No reviewsBIP 141: fix URLs
BIP142 - Typos and grammar
Adds a missing BIP 141 segwit BIP reference
Adding a missing reference to BIP 141 for clarity.
No reviewsIntroducing the term "witnessscript" in BIP141
BIP 132: Add Committee-based BIP Acceptance Process
Previous discussions: - https://gist.github.com/andychase/dddb83c294295879308b - https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-September/010948.html - https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-September/010914.html I would like to be assigned a number please! Thanks.
No reviewsFix typo in proposed BIP144.
BIP 102: update to match implementation
Contains latest ISM changes.
No reviewsBIP 131: "Coalescing Transaction" Specification (wildcard inputs)
I wrote this BIP from getting feedback from the dev mailing list. There is no implementation yet, but that can come after a number has been assigned. I have not included any numbers in this pull request. Once a number has been assigned I'll update this PR with the number.
No reviewsNew witness program definition in BIP141, and related revision in 142 - 144
BIP141: New witness program definition BIP142: Title change; new address definition BIP143: Title change and update reference implementation BIP144: Update reference implementation
No reviews[BIP68] Update reference implementation
BIP 0001: Change BIP editor to Luke Dashjr
@gmaxwell asked that I take over BIP number assignments
No reviewsBIP 124: Hierarchical Deterministic Script Templates
Defines a generalized script template format for wallet interoperability.
No reviewsBIP141: New commitment structure, sigop limits, etc
Revised based on the latest codebase: https://github.com/sipa/bitcoin/commits/segwit2
No reviewsBIP 107: Dynamic block size proposal
- 2 phase plan for increasing the block size - Will update with BIP number if/when assigned one
No reviewsBIP 122: URI scheme for Blockchain references / exploration
New BIP: URI scheme for Blockchain references / exploration (as discussed on bitcoin-dev mailing list). Trying to follow what @gmaxwell recently proposed on bitcoin-dev, for proposing a new BIP and obtaining a number. But I'm not so used to collaboration via Github, so apologies in advance for any "bitcointiquette" mistakes.
No reviewsMinor: Fix BIP65 status in README
We changed it in the BIP doc itself, but not the index.
No reviewsFix small typo in BIP 0016
add copay link to bip44 compatible wallets list
I suggest that we add copay to thie list of compatible wallets for Bip44 as they use the Bip44 path for key derivation 
No reviewsBIP16: fix typo in block height of P2SH validation
BIP 0001: Clarification of when changes don't need a BIP
BIP1: Clarify and consolidate text regarding early stage idea championing
The BIP1 text has been updated to clarify how early stage idea championing works. The text itself is not significantly different, for the most part these changes involved reordering the existing sentences and paragraphs, and removing some conflicting ambiguous details. LIkewise, the previous reasons for BIP editor rejection of a (e.g. malformed) BIP have been consolidated into closer proximity in the text. I suspect that this will help readers understand the process better. Also, this branch i
No reviewsBIP 144: Segregated Witness (Peer Services)
Needs BIP number
No reviewsBIP 143: Transaction signature verification for version 0 and version 1 witness program
This proposal defines a new transaction digest algorithm for signature verification in version 0 and version 1 witness program, in order to minimize redundant data hashing in verification, and to cover the input value by the signature.
No reviewsBIP 142: Address Formats for Witness Program
Request for BIP number for "Address Format for Witness Program"
No reviewsBIP 141: Segregated Witness (Consensus layer)
BIP number requested,
No reviewsBIP 125: Opt-in Full Replace-by-Fee Signaling
@petertodd and I present the following proposed BIP describing opt-in full-RBF signaling, as requested in the [2015-12-03 bitcoin-dev IRC meeting](http://www.erisian.com.au/meetbot/bitcoin-dev/2015/bitcoin-dev.2015-12-03-18.59.html). Opt-in full-RBF has previously been [discussed on the mailing list](http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-November/011783.html) and support for it has been [added to Bitcoin Core](https://github.com/bitcoin/bitcoin/pull/6871), so I humbly requ
No reviewsBIP 140: Normalized transaction ID
This is the amended Normalized Transaction ID BIP previously discussed on the mailing list. Since the discussion on the mailing list there have been some major changes, for one the BIP changed from requiring a hard-fork to a much easier soft-fork (thanks sipa for helping me figure out how). The normalized transaction IDs are computed on a stripped version of the transaction, in which all the malleable parts, i.e., the signatures, where removed. This solves malleability in a simple and clean way
No reviewsBIP65: Change to accepted status
With https://github.com/bitcoin/bitcoin/pull/6351 merged (and subsequent backport's), it would seem this status is fitting?
No reviewsBIP-0001: Updates
Clarified about BIP number assignment (not to self-assign, how numbers get assigned specifically).
No reviewsBIP68: update specification to assume MTP
BIP68 and BIP113 will be deployed together which simplifies the specification slightly
No reviewsBIP65 formatting fixes
BIP-0001 Should be labeled as "Process" Type
Previously BIP-0001 listed in its header preamble that is was a "Standards Track" type proposal. This conflicts with both its own definition of "Standards Track" proposal as well as the type listed in PEP-0001 of which BIP-0001 is based on. Defitions of each type of proposal: A Standards Track BIP describes any change that affects most or all Bitcoin implementations. An Informational BIP describes a Bitcoin design issue, or provides general guidelines or information to the Bitcoin community,
No reviewsUpdate bip-0067.mediawiki
Change date format to ISO 8601
No reviewsBIP68: Simplify language and update for current implementation
Update according to bitcoin/bitcoin#6312 implementation
No reviewsBIP47: fix typo
Bip 103 squashed
Better pull request.
BIP112: Update document to match implementation
For https://github.com/bitcoin/bitcoin/pull/6564
No reviewsBIP-0112 minor revision to text.
Clarification on retroactive invalidation and improvement to language.
No reviewsMark BIP62 as withdrawn
All of BIP62's (including the only-new-transactions) are currently enforced as standardness rules, but it seems hard to push it further. Every new type of complex transaction may require new extra rules, and some important types of malleability cannot be addressed by it (for example, a single participant in a multisig spend creating a new signature with a different nonce). It seems wiser to pursue normalized txid or segregated witness-based solutions, which do solve this problem more fundamental
No reviewsBIP65 wording fixes
Fix various wording issues, like obsolete terms, typos, unclear wording etc.
No reviewsBip99: Improvements
Continues #181, including some things that were left out by accident.
No reviewsBIP99: Motivation and deployment of consensus rule changes
This BIP attempts to classify all possible scenarios for consensus rule changes (soft/hard forks) as well as recommending a deployment path for each of them. It also contains code proposing a first uncontroversial hardfork that conclusively fixes the timewarp attack: https://github.com/bitcoin/bitcoin/compare/0.11...jtimon:hardfork-timewarp-0.11 The recommended activation conditions for uncontroversial hardforks are still being discussed in http://lists.linuxfoundation.org/pipermail/bitcoin-de
No reviewsNew BIP for "sendheaders" p2p message
This is in substantially the same form as proposed on the mailing list and discussed on IRC. I'll update this pull after a BIP number is assigned. @theuni -- perhaps we can discuss any outstanding concerns with this approach in this PR?
No reviewsBIP 102: Add miner vote. Fix index.
- Fix index, 101 -> 102 - Latest BIP 102 updates: Remove now-past date. Replace with miner vote.
No reviewsBIP65 spv clients
Add recommendation that SPV clients validate nVersion deployment rules to prevent the acceptance of invalid blocks after the 95% threshold has been reached.
No reviewsBip121 fixes
Update deployment for BIP65
BIP65 is being deployed by IsSuperMajority. Updating this BIP to reflect this fact.
No reviewsBip classification
Please assign number. BIP123 would be nice.
No reviewsBIP 102: Increase block size limit to 2MB
A minimum-increase BIP alternative.
No reviewsSpelling fix and small clarification for BIP 120
Spelling: "neccesarily" => "necessarily" "scipts" => "scripts" One small improvement for clarity: "another" => "a different"
No reviewsBIP-47: correct base58check version byte
Previously specified version byte only produced the desired leading character if the check bytes were omitted Thanks to TD from Samourai Wallet for pointing this out
No reviewsFix ambiguous reference to seed value in BIP32 test vectors
The test vectors currently reference a "master", an ambiguous term with no single meaning in the BIP32 spec. The test vectors should instead reference the seed.
No reviewsAdd in-line description of BIP 68.
BIP-68: Clarify text and code to match current pull request
See commit messages.
No reviewsUpdate BIP112 examples
This PR adds more usecases to the motivation section.
No reviews[WIP] Update BIP112
This pull request updates BIP112 to the BIP68 and adds more usecase examples.
No reviewsBIP0062: Add a warning about its undeployable status
[Some folks are asking miners to deploy BIP 62](http://blog.coinkite.com/post/130318407326/ongoing-bitcoin-malleability-attack-low-s-high), but it isn't in a deployable state right now...
No reviewsBIP 009: Minor revision to extend bit into lockin period.
As discussed here: http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-September/011275.html Signed-off-by: Rusty Russell rusty@rustcorp.com.au
No reviewsversionbits: the BIP.
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-September/010998.html Signed-off-by: Rusty Russell rusty@rustcorp.com.au
No reviewsRewrite BIP 68 to reflect current state of pull request #6312
Including the removal of bit inversion and the allocation of future soft-fork bits. Includes and obsoletes #172.
No reviewsBIP-47: Clarify decoding of notification transactions
Specify procedure for extracting payment codes from notification transactions. Add explicit check that payment code x values are valid for secp256k1
No reviewsBIP105: Update to account for BIP34
The voting mechanism did not previously account for BIP34.
No reviewsBIP112: CHECKSEQUENCEVERIFY
Todo - [x] BIP number assignment - [x] Amend text for median-past-timelock BIP number when assigned
No reviewsAdded BIP 69: Lexicographical Indexing of Inputs and Outputs
Lexicographical Indexing of Transaction Inputs and Outputs
No reviewsBIP70: Fix broken extensions registry link in code comment.
This resolves an incorrect link to `extensions.mediawiki` in the code comments of `paymentrequest.proto`.
No reviewsBIP 106: Dynamically Controlled Bitcoin Block Size Max Cap
Transferred from https://github.com/UpalChakraborty/bips/blob/master/BIP-DynamicMaxBlockSize.mediawiki
No reviewsBIP105: Consensus based block size retargeting algorithm
Transferred from https://gist.github.com/btcdrak/1c3a323100a912b605b5
No reviewsBugfix: BIP17: Withdrawn is the status, not the type
BIP 120, 121: "Proof of Payment" and "Proof of Payment URI scheme"
I've created a single pull request for both bips because they are very related and I think a single discussion thread for both bips is better than two separate threads.
No reviewsBIP 111
bip66: change status to final
If #169 is not able to merged, then lets bump this puppy.
No reviewsBIP 101 : maximum block size increase
Proposal to increase maximum possible block size, starting at 8MB in January 2016 and increasing on-pace with technological growth to 8,192MB in twenty years.
No reviewsMinor: BIP62: spelling
Ooops! CC: @sipa
No reviewsBIP65: add sections on ability to freeze funds and implementations
I added a section on the ability to freeze funds, updated link to go straight to the new bitcoin-dev mailing list archive, and added a section on implementations.
No reviewsUpdate bip45 based on comments by dskloet
- fix examples - fix address discovery section - fix purpose to 45 - mention difference with bip-0044
No reviewsAdd BIP 68: Consensus-enforced transaction replacement signalled via sequence numbers
BIP number assigned here: https://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg08340.html
No reviewsbip-0001: Mailing list move
BIP: Deterministic multi-signature P2SH addresses
BIP for standard multisignature P2SH addresses given m and a set of public keys. Bip90 is just a number which doesn't collide, I will request one via the mailing list now.
No reviewsNFKD normalize BIP39 spanish word list
BIP39 specifies that word lists must be Unicode NFKD normalized. This should not affect existing wallet seeds since they must be NFKD normalized prior to deriving a master private key.
No reviewsBIP62: Make OP_0 a validly encoded signature
Previously BIP62 did not provide a compact way to delibrately encode an invalid signature. For example in BIP19 if m != n with this change you can provide compact OP_0's in the scriptSig rather than lengthy DER-encoded signatures. Note that we may want to further expand on this change in the future by saying that only OP_0 is a "valid" invalid signature; BIP19 even with this change is inherently malleable as the invalid signatures can be any validly encoded DER signature. CC: @sipa
No reviewsBIP39 - Add reference to JavaScript implementation
BIP66: Number Examples To Match Implementation Tests
The Bitcoin Core tests in script_tests.cpp refer to these examples by number, but the text examples are in an unordered list, making them hard to follow. This changes the list to an ordered (numbered) list. CC: BIP author @sipa
No reviews[Bip37] fix SPV link and remove empty Smart Property link
BIP-0044 - add a compatible wallet
Add Encompass to the list of BIP-0044 compatible wallets.
No reviewsUpdate BIP32 to add bitcore as implementation
Add BIP66
Fix a few minor typos in bip 0065
Update bip-0039-wordlists.md
Added Chinese wordlist.
No reviewsBip32, fix missing parenthesis
reported by fenn on #bitcoin-dev [02:59:57]
No reviewsBIP39 Adding reference to .NET C# (PCL) API
Addition of a .NET C# (PCL) into the BIPS39 wiki documentation for .NET developers whishing to use BIPS39 in a .NET project to derive seed bytes from a mnemonic sentence.
No reviewsUpdate bip32 wiki, repo moved
Updating status of BIP 0010
Armory no longer uses BIP 0010 for multisignature transaction, and there does not seem to be any wallets that have actually implemented BIP 0010. BIP 0010 status should be marked as withdrawn, and the dead links to the implementation should be updated.
No reviews[BIP62] Add explicit note about OpenSSL wrt low S values
Short one digit in BIP32 doc notes.
BIP65 CHECKLOCKTIMEVERIFY
@gmaxwell As discussed.
No reviewsUpdate bip-0039-wordlists.md
Added Spanish wordlist.
No reviewsBIP 0039 - Add passphrase info to Test Vectors section
In the Test Vectors section it doesn't say anywhere which passphrase is used when generating the test vectors, leading to some frustration when trying and failing to match them. I added the passphrase in the section. Also ran spell check: mnenomic -> mnemonic hexidecimal -> hexadecimal randomnes -> randomness
No reviewsremoving myself from bip39 authors
BIP43: Block usage 0 because it's already used in BIP32.
It would be unfortunate if BIP32 wallets would at one day overlap BIP43 wallets.
No reviewsBIP32: Disambiguate Which Key Is Compromised When Ext. PubKey + PrivKey Are Leaked
I mistakenly inferred from the following clause that a parent extended public key plus a child private key would be equivalent to knowing the extended _child_ private key---meaning that the _parent_ private key was still secure: > knowledge of the extended public key + any non-hardened private key descending from it is equivalent to knowing the extended private key This patch's addition of the word "parent" (twice) removes the ambiguity and may help other readers draw the correct inference tha
No reviewsBIP 38 - Clarify AES parameters passed in
There was some slight ambiguity in which items passed into AESEncrypt was the key and which was the block.
No reviewsAdded two BIP44 compatible wallets in Android
Subj :) Please update info, not only the Trezor is copatible with BIP44 standard :)
No reviewsBIP39 grammar
grammar and sentence structure fixes
No reviewsUpdate bip-0070.mediawiki, comment correction in signature field.
Clarification regarding the signature field in payment details and which key should be used for signing.
No reviewsBIP62: Reorder rules and clarify
bip-0044.mediawiki: fix typo
remove space which should not be there
No reviewsBIP 44 - Specify that this BIP is not a central repository.
Clarified that this repo is not a central repository and provided links to Satoshi Labs that maintains this list.
No reviewsAdding link to Ruby implementation of BIP0032
I had added this link on the wiki, but when the page got moved over to GitHub, the link disappeared.
No reviewsAdd BIP0032 Go implementation.
This pull request adds a new BIP0032 implementation written in Go ([hdkeychain](https://github.com/conformal/btcutil/tree/master/hdkeychain)).
No reviewsadded link to Objective-C implementation of BIP32
Spelling BIP 39
Spelling bip 32
Added bip32utils Python implementation reference
Fix BIP 21 and BIP 72 ambiguities & mistakes
As mentioned in the [bitcoin-development mailing list](http://sourceforge.net/p/bitcoin/mailman/message/32070951/), I have discovered some ambiguities and mistakes while writing my own bip-21 parser. This pull request fixes the various issues.
No reviewsUpdate bip-0038.mediawiki
Fix some erroneous statements in the description of the math used for encryption/decryption of EC-Multiplied keys/addresses
No reviewsreject P2P message (BIP61)
Long overdue, I finally found the time to tidy up my 'gist' into a BIP.
No reviewsbip-0044: scan just external chains
Update bip-0013.mediawiki
Clarified that the 4-byte checksum is from double SHA256 rounds
No reviewsAdd reference to RFC 2616 to BIP0072
Add BIP 42: finite monetary supply for Bitcoin
Recommend including intermediate certificates in a BIP70 payment request.
Add in-repo BIP70 extension registration page
Follow-up to 549afce2ee1339370dec52787548645ab1f8c3c5
No reviewsAdd draft BIP62
Update bip-0038.mediawiki
fixed some typos that made the spec inconsistent and confusing to implement
No reviewsDocument BIP16/P2SH 520 byte redeem script limit
Assign BIP63 for Stealth Addresses
People are starting to come out of the woodwork and implement this; good to have something to point them to. I'll do up an initial full-node-only draft.
No reviewsUpdate BIP32: 'hardened' terminology + explicit conversions
Fix typos in BIP 14
proceeds -> precedes seperate -> separate
No reviewsDocumenting the timestamp for BIP-0030
Per the linked commit, this rule became active for blocks with timestamps after on March 15, 2012 at 00:00 UTC (February 20, 2012 at 00:00 UTC for testnet).
No reviewsClarify UTC for all time values in BIP70.
BIP0070 limits and error handling
Changed example URL to be standard example domain. Added file size limits for PaymentRequest and PaymentACK. Added requirement to handle repeated sending of Payment message (i.e. to handle network failure).
No reviewsfix typos in BIP-0043 and BIP-0044
Fixed broken links to other BIP pages
Link to PHP implementation of BIP32- Passes test vectors.
Adding a link to my PHP implementation of BIP32. Passes test vectors from github.
No reviewsFixed table cell truncation in BIP 70
Added spaces after cells in the first column of the `PaymentDetails` table because their contents were being truncated by GitHub's markdown renderer.
No reviews