1
0
mirror of https://github.com/bitcoin/bips.git synced 2026-08-31 18:47:36 +00:00
Commit Graph

4764 Commits

Author SHA1 Message Date
Sats And Sports
ccb5415095 BIP-327: fix reference.py type errors failing tests.sh 2026-08-18 18:41:24 +02:00
Murch
857a7debc6 Merge pull request #2243 from jonatack/2026-08-add-security_md-document
Add SECURITY.md
2026-08-17 14:33:23 -07:00
Jon Atack
5c84a15bd4 Merge pull request #2126 from ethicnology/bip85-nostr-application-86
BIP85: add Nostr application
2026-08-17 10:22:09 -07:00
Jon Atack
a30de518e8 Merge pull request #2253 from questfever/master
BIP375: correctly detect SegWit v2+ witness programs
2026-08-17 09:55:28 -07:00
Murch
d923cb825c Merge pull request #2233 from grandpig/master
scripts: validate the first Comments-URI entry
2026-08-14 17:05:25 -07:00
Jon Atack
d8cb214773 Add SECURITY.md
Co-authored-by: Murch <murch@murch.one>
Co-authored-by: Anthony Towns <aj@erisian.com.au>
Co-authored-by: Edil Medeiros <jose.edil@gmail.com>
2026-08-13 12:04:19 -06:00
questfever
e726d13ade BIP375: correctly detect SegWit v2+ witness programs 2026-08-13 17:29:30 +08:00
Murch
60f5b33b0a Merge pull request #2252 from jurvis/bip89-deployed
bip89: advance to deployed
2026-08-12 21:22:56 -07:00
Jurvis Tan
b7bf6dda11 docs: advance bip89 to deployed 2026-08-12 21:09:47 -07:00
Murch
fe2d6caf85 Merge pull request #2250 from liamgilligan/bip324-method-name
BIP-324: Correct method name in handshake diagram
2026-08-12 10:35:03 -07:00
grandpig
6d5fc819a6 scripts: validate the first Comments-URI entry
Signed-off-by: grandpig <grandpig@outlook.com>
2026-08-12 22:31:30 +08:00
Liam Gilligan
3e4829c802 bip324: update method name for consistency
In everywhere except the handshake diagram, the transport initialization method name is `initialize_v2_transport`, but was `v2_initialize` in the diagram.
2026-08-11 13:51:40 -07:00
Murch
c38071c8c4 Merge pull request #2245 from jonatack/2026-08-bip110-status-update
BIP110: update status to Closed
2026-08-10 14:05:56 -07:00
Jon Atack
996d09a3b4 Merge pull request #2248 from murchandamus/editors-luke
process: Remove Luke from BIP Editors
2026-08-10 13:36:00 -07:00
Jon Atack
e4c6bbc099 bip110: update status to closed 2026-08-10 14:04:09 -06:00
Murch
967ed3fa0b process: Remove Luke from BIP Editors 2026-08-09 09:14:53 -07:00
Murch
1edd2f7be0 Merge pull request #2225 from dathonohm/bip110-p2a-clarification
BIP-110: Clarify P2A exemption in rule 3 requires an empty witness stack
2026-08-09 08:48:18 -07:00
Murch
b01048ebee bip110: Adopt John Moffett’s description of BIP433 relationship
Co-authored-by: John Moffett <116917595+john-moffett@users.noreply.github.com>
2026-08-09 08:46:25 -07:00
Jon Atack
ed4ffcb6a4 Merge pull request #2234 from brunoerg/2026-08-bip155
BIP155: mention IPv4-in-IPv6 range MUST NOT be sent within IPV6
2026-08-06 13:09:21 -07:00
Jon Atack
c536a9ba99 Merge pull request #2239 from guggero/descriptors-bugfix
BIP-{383,386,389,390}: fix small issues and discrepancies
2026-08-06 13:02:52 -07:00
Oli
19d6e7f204 bip383: specify more precise script size limit
The "15 compressed public keys" rule is not very precise and
doesn't mention uncompressed ones.
Core implements this differently as well:
https://github.com/bitcoin/bitcoin/blob/master/src/script/descriptor.cpp#L2425
So we make the definition more precise.
2026-08-06 11:01:30 +02:00
Oli
279395a60c bip383: fix incomplete sentence 2026-08-06 11:01:30 +02:00
Oli
d7854890ac bip386: update stale sentence
New BIPs with more allowed expressions within a tr() tree
have been added and are worth mentioning.
2026-08-06 11:01:30 +02:00
Oli
83c04884a1 bip386: remove stray space
A stray space is not allowed inside such an expression.
2026-08-06 11:01:30 +02:00
Oli
9570a72d50 bip389: remove H as valid hardened step indicator
In BIP380 the capital letter H is explicitly defined as an invalid
indicator for a hardened step. The "Invalid expression" section has
explicit examples prefixed "Invalid hardened indicators" that show
"0H/0H/0H" as being wrong.
2026-08-06 11:01:30 +02:00
Oli
7517a8b2ac bip390: fix missing parenthesis in test vector 2026-08-06 11:01:30 +02:00
Oli
384a2e1351 bip389: fix missing parenthesis in test vector 2026-08-06 11:01:30 +02:00
Murch
01d2c8410f Merge pull request #2236 from murchandamus/bip8-fix-mediawiki-syntax
bip8: Fix mediawiki syntax for bold
2026-08-05 11:42:06 -07:00
Murch
3783cf7d40 bip8: Fix mediawiki syntax for bold 2026-08-05 11:40:53 -07:00
Jon Atack
2204562044 Merge pull request #2163 from murchandamus/bip8-complete
bip8: Advance to Complete
2026-08-04 21:18:41 -07:00
Murch
1766568df5 bip8: Advance to Complete 2026-08-03 15:38:59 -07:00
Murch
72fb11fae7 bip8: Add Changelog 2026-08-03 15:38:55 -07:00
Bruno Garcia
8a4ed72e28 BIP155: mention IPv4-in-IPv6 range MUST NOT be sent within IPV6 2026-08-03 11:21:42 -03:00
ethicnology
6209768676 bip85: add Nostr application 128002' 2026-08-03 09:01:17 -04:00
ethicnology
9385cd2dd8 bip85: remove obsolete reference implementations 2026-08-03 08:59:53 -04:00
ethicnology
ed669a4caa typos: move Strnad to extend-words 2026-08-03 08:59:38 -04:00
Jon Atack
e7263a4cfe Merge pull request #2223 from jeanpablojp/bip360-fix-size-claim
bip360: correct the claimed P2MR witness size saving
2026-08-02 21:03:44 -07:00
Jon Atack
74e01fc6a3 Merge pull request #2229 from fametrano/invalidate-example-addresses
BIP321: make all example addresses intentionally invalid
2026-08-02 20:52:56 -07:00
Jon Atack
9f65bdbad1 Merge pull request #2221 from jeanpablojp/bip360-fix-links
bip360: fix stale links, version header and a size example label
2026-08-01 17:32:27 -07:00
Jon Atack
b31410ca58 Merge pull request #2220 from jeanpablojp/bip360-fix-pqc-vectors
bip360: fix leafHashes order and a control byte in the pqc test vectors
2026-08-01 09:34:22 -07:00
Ferdinando Ametrano
644e484d4a BIP321: make all example addresses intentionally invalid
The base58 example address has an intentionally invalid checksum, but
the bech32 and bech32m examples added later have valid checksums, so
they are spendable addresses that a reader may pay by accident -- the
very hazard that motivated the invalid base58 address in #119. Two of
them are mainnet:

  bc1qufgy354j3kmvuch987xe4s40836x3h0lg8f5n2  (bech32, witness v0)
  bc1p5swkugezn...vep9m4p7339x5qzyrh4g        (bech32m, witness v1)
  tb1qghfhmd4zh7ncpmxl3qzhmq566jk8ckq4gafnmg  (bech32, testnet)

Alter the final checksum character of each, and document the intent
with the note BIP 21 received in #1861. Bech32 detects any
single-character substitution, so the modified strings cannot be valid
addresses. The human-readable part, charset and length are unchanged,
so the examples remain structurally representative of P2WPKH and P2TR.

The uppercase QR-code variants are updated to match, and the changed
testnet address in the "Invalid URIs" section still demonstrates the
same point (a `tb` address in the `bc` parameter).

Alternative to #2228, which leaves the addresses untouched and instead
words the note to match them.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 23:00:39 +02:00
Dathon Ohm
2dfb201b27 BIP-110: Add rule 3 test vectors for the P2A empty-witness requirement
Co-Authored-By: jarolrod <jarolrod@tutanota.com>
2026-07-29 14:48:35 -06:00
Dathon Ohm
ae98a6ed47 BIP-110: Add Defined witness versions subsection clarifying the rule 3 P2A exemption 2026-07-29 14:48:32 -06:00
JP
33202403b3 bip360: correct the claimed P2MR witness size saving
The Transaction Size and Fees section says a P2MR witness is always 32
bytes smaller than an equivalent P2TR script path spend witness. The
control blocks are 1 + 32*m and 33 + 32*m bytes, each serialised with
a compact size prefix, so at m = 7 the P2TR control block is 257 bytes
and takes a 3-byte prefix while the P2MR one is 225 bytes and takes 1.
The saving there is 34 bytes, not 32. Every other depth up to 128
gives 32.

The section already footnotes this boundary for the P2MR side a few
paragraphs earlier.
2026-07-28 15:22:24 +01:00
JP
19f5a224ee bip360: fix stale links, version header and a size example label
- The Test Vectors section linked P2MR_construction.json; the file on
  disk is lowercase p2mr_construction.json, so the link 404s.
- The same section still linked the rust implementation under
  bip-0360/ref-impl/rust, which #2202 moved out of the repository.
- The header said Version: 0.12.0 while the changelog's latest entry
  is 0.12.1.
- The 135-byte depth-1 witness example labeled the merkle path
  "(empty)" while counting 32 bytes for it (a depth-1 path has one
  32-byte node).
2026-07-27 21:44:00 +01:00
JP
1baf0e71bb bip360: fix leafHashes order and a control byte in the pqc vectors
In p2mr_pqc_construction.json, the three-leaf vectors
(p2mr_three_leaf_complex, p2mr_three_leaf_alternative) listed
intermediary.leafHashes with entries 0 and 2 swapped relative to the
depth-first order of the script tree, while the merkle root,
scriptPubKey, address and control blocks all follow depth-first
order (as do the same trees in p2mr_construction.json).

In p2mr_different_version_leaves, scriptPathControlBlocks[1] started
with byte 0xc1 although the leaf it commits to has leafVersion 0xfa;
the control byte carries the leaf version in its upper 7 bits with
the low bit set, so it must be 0xfb. The vector's leafHashes[1] and
merkle root already correspond to the 0xfa leaf.
2026-07-27 21:40:00 +01:00
Jon Atack
9783d61f1b Merge pull request #2217 from jonatack/2026-07-bip360-add-changelog-entry
bip360: add changelog entry for PR 2202
2026-07-26 12:22:38 -07:00
Jon Atack
0fdf6ffdbb bip360: add changelog entry for PR2202 2026-07-24 16:22:20 -06:00
Jon Atack
b289d016b9 Merge pull request #2202 from notmike-5/p2mr
bip-0360: added python reference example; test vector fixes
2026-07-24 10:13:20 -07:00
Jon Atack
6b26d8ce85 Merge pull request #2216 from jonatack/2026-07-bip54-update-reference-implementation
BIP54: update reference implementation
2026-07-24 08:05:24 -07:00