Skip to content

Bitcoin Improvement Proposals (BIPs)

This page describes the implementation status of Bitcoin Improvement Proposals (BIPs) in Bitcoin Cash Node. See BIP2 for basic information about BIPs.

Note that BIPs are written for Bitcoin (Core) rather than for Bitcoin Cash. See Bitcoin Cash upgrades for implementation status of proposals specifically written for Bitcoin Cash.

Currently implemented BIPs

The following BIPs are currently implemented in Bitcoin Cash Node:

  • BIP11: Multisig outputs are standard since v0.6.0 (PR#669).
  • BIP13: The address format for P2SH addresses has been implemented since v0.6.0 (PR#669).
  • BIP14: The subversion string is being used as User Agent since v0.6.0 (PR#669).
  • BIP16: The pay-to-script-hash evaluation rules have been implemented since v0.6.0 (PR#748), and took effect on April 1st 2012.
  • BIP21: The URI format for Bitcoin payments has been implemented since v0.6.0 (PR#176). The URI scheme prefix has changed from bitcoin: to bitcoincash: as of v0.15.0 (D466).
  • BIP22: The getblocktemplate (GBT) RPC protocol for mining has been implemented since v0.7.0 (PR#936). With the implementation of SigChecks, the sigops and sigoplimit fields have been changed to output SigCheck-based values in v22.0.0 (MR!681).
  • BIP23: Some extensions to GBT, including longpolling and block proposals, have been implemented since v0.10.0rc1 (PR#1816).
  • BIP30: The evaluation rules to forbid creating new transactions with the same txid as previous not-fully-spent transactions were implemented since v0.6.0 (PR#915), and the rule took effect on March 15th 2012.
  • BIP31: The pong protocol message (and the protocol version bump to 60001) has been implemented since v0.6.1 (PR#1081).
  • BIP32: Hierarchical Deterministic Wallets has been implemented since v0.13.0 (PR#8035).
  • BIP34: The rule that requires blocks to contain their height (number) in the coinbase input, and the introduction of version 2 blocks has been implemented since v0.7.0 (PR#1526). The rule took effect for version 2 blocks as of block 224413 (March 5th 2013), and version 1 blocks are no longer allowed since block 227931 (March 25th 2013).
  • BIP35: The mempool protocol message (and the protocol version bump to 60002) has been implemented since v0.7.0 (PR#1641).
  • BIP37: The bloom filtering for transaction relaying, partial Merkle trees for blocks, and the protocol version bump to 70001 (enabling low-bandwidth SPV clients) has been implemented since v0.8.0 (PR#1795).
  • BIP42: The bug that would have caused the subsidy schedule to resume after block 13440000 was fixed in v0.9.2 (PR#3842).
  • BIP61: The reject protocol message (and the protocol version bump to 70002) was added in v0.9.0 (PR#3185). Whether to send reject messages can be configured with the -enablebip61 option since v0.19.11 (D3722).
  • BIP65: The CHECKLOCKTIMEVERIFY softfork was merged in v0.12.0 (PR#6351), and backported to v0.11.2 and v0.10.4. Mempool-only CLTV was added in PR#6124.
  • BIP66: The strict DER rules and associated version 3 blocks have been implemented since v0.10.0 (PR#5713).
  • BIP68: Sequence locks have been implemented as of v0.12.1 (PR#7184), and are active since block 419328.
  • BIP70, BIP71, BIP72: Payment Protocol support has been available in Bitcoin Core GUI since v0.9.0 (PR#5216).
  • BIP90: Trigger mechanism for activation of BIP34, BIP65, and BIP66 has been simplified to block height checks since v0.14.0 (PR#8391). The same principle has been reapplied later to simplify the logic of Bitcoin Cash network upgrades after activation.
  • BIP111: NODE_BLOOM service bit added, and enforced for all peer versions as of v0.13.0 (PR#6579, PR#6641).
  • BIP112: The CHECKSEQUENCEVERIFY opcode has been implemented since v0.12.1 (PR#7524) and is active since block 419328.
  • BIP113: Median time past lock-time calculations have been implemented since v0.12.1 (PR#6566) and are active since block 419328.
  • BIP130: Direct headers announcement is negotiated with peer versions ≥70012 as of v0.12.0 (PR#6494).
  • BIP133: feefilter messages are respected and sent for peer versions ≥70013 as of v0.13.0 (PR#7542).
  • BIP152: Compact block transfer and related optimizations are used as of v0.13.0 (PR#8068).
  • BIP158: Compact block filters for light clients can be constructed since v0.19.6 (D2867).
  • BIP159: The NODE_NETWORK_LIMITED service bit is both signalled (D2363) and connected to (D2390) as of v0.18.7.
  • BIP174: To operate on Partially Signed Bitcoin Transactions (PSBT), utility RPCs are present as of v0.20.6 (D4351) and wallet RPCs are present as of v0.20.7 (D4352).
  • BIP340: Functions for creating and verifying Schnorr signatures are available in libsecp256k1 as of v0.18.8 (D2169), but they are based on an older draft of BIP340. More precisely, Bitcoin Cash chooses the Y coordinate that is a quadratic residue (option 3), instead of the Y coordinate that is even (option 2), i.e. the specification before the change described in footnote 6 was applied.

Obsolete BIPs

We list a BIP as obsolete if:

  • the BIP was previously implemented in Bitcoin Cash Node but the implementation was removed later, or;
  • the BIP has been replaced with a Bitcoin Cash upgrade that is implemented in Bitcoin Cash Node.

Here, Bitcoin Cash Node includes its predecessors Bitcoin ABC (before v0.21.0) and Bitcoin Core (before v0.14.1).

The obsolete BIPs are: