Files
bips/bip-0375
macgyver13 434a4d2659 BIP-375: update labeled test vectors
Now PSBT_OUT_SP_V0_INFO provides labeled-spend public key not the base-spend
public key.

Modify test vector with labeled-spend key to the same recipient from:
two sp outputs - output 0 uses label=3 / output 1 uses label=1
to:
three sp outputs (same scan key) - output 0 uses label=1, outputs 1 and 2 uses label=2 (same spend key)
This vector excercises the BIP375 sorting outputs with same scan key properly.

The next commit will fix the validation logic and address this failing test.

bump ChangeLog to 0.1.3
2026-11-04 18:14:49 -05:00
..
2026-04-04 09:17:46 -04:00

BIP-375 Validation Reference

A reference validation implementation for BIP-375: Sending Silent Payments with PSBTs.

Core Files

  • validator/bip352_crypto.py - Silent payment output script derivation
  • validator/inputs.py - PSBT input utility functions
  • validator/psbt_bip375.py - BIP-375 specific PSBT/PSBTMap extensions
  • validator/validate_psbt.py - Main BIP-375 validation functions
  • test_runner.py - Test infrastructure (executable)

Dependencies

  • deps/bitcoin_test/psbt.py - Bitcoin test framework PSBT module - PR #21283
  • deps/bitcoin_test/messages.py - Bitcoin test framework primitives and message structures
  • deps/dleq.py - Reference DLEQ implementation from BIP-374
  • deps/secp256k1lab/ - vendored copy of secp256k1lab library at version 1.0.0

Testing

Run Tests

python test_runner.py                    # Run all tests
python test_runner.py -v                 # Verbose mode with detailed validation status
python test_runner.py -vv                # More verbose with validation check failure reason

python test_runner.py -f vectors.json    # Use custom test vector file

Generating Test Vectors

Test vectors were generated using test_generator.py