Coin Brief ENDE

A PSBT test vector arrives because a bug got past the old ones

A day of small edits to the PSBT specifications produced one change with teeth. Pull request #2275, merged on 23 September 2026 by Sjors, adds a combiner test vector for PSBT_IN_SIGHASH_TYPE to BIP-174: https://github.com/bitcoin/bips/pull/2275.

The stated purpose is blunt: the vector would have caught a specific bug in Bitcoin Core. Alongside it, the pull request records something the specification had already decided but the tests had not reflected - Combine is not commutative, while the existing vectors were. The first commit makes explicit that those vectors are to be run in both orders, leaving room for exceptions if conflict resolution is ever standardised.

The same day carried companion tidying: a changelog note on that commutativity clarification, a consistent indentation pass over the test vectors, and a BIP-370 edit describing what the Input Finalizer retains in a version 2 input.

A PSBT test vector arrives because a bug got past the old ones
A PSBT test vector arrives because a bug got past the old ones — Coin Brief

What it means

A test suite that is commutative cannot test an operation that is not. If Combine(a, b) and Combine(b, a) may differ, then vectors which only ever run one order are blind to exactly the disagreement the rule exists to govern - and blind in the direction where two wallets combining the same partial transaction reach different results.

Test vectors in a specification are the interoperability contract, not documentation of it. Two independent implementations agree because they pass the same vectors; anything the vectors do not exercise is agreed only by coincidence. Adding a vector because a bug escaped is the specification absorbing a lesson the implementations already paid for.

⚠️ These are specification and test changes. No wallet behaviour changes because a vector was added, and the Core pull request referenced in the discussion is a separate piece of work.