Commit Graph
40 Commits
Author SHA1 Message Date
Sjors Provoost 5fc05e2b17 bip138: generalize key-selection test vectors
Rename keys_types.json to recipient_keys.json and generalize the format
to support multiple descriptors and multiple recipient keys:

- "key": a single key-expression string becomes "descriptors": an array
  of complete descriptor strings.
- "expected": an x-only key string becomes "expected_keys": an array
  containing that key; null remains null.

Convert the nine existing cases by wrapping each key expression in tr(),
except the uncompressed literal uses pk(), since tr() does not accept it.
Each case has one descriptor.
2026-09-24 20:09:33 -07:00
Sjors Provoost 62dc1c4e8f bip138: record encoding clarifications in changelog 2026-09-24 14:48:22 -07:00
Sjors Provoost bf64a12098 bip138: clarify rejection of empty payloads
Clarify that an empty payload contains zero content items. Add a
vector that rejects a payload consisting only of the 0x00 terminator.
2026-09-24 14:47:16 -07:00
Sjors Provoost aa098559bf bip138: clarify that 0x00 ends payload parsing
Specify that parsing stops immediately. Add a vector with an item followed
by a terminator and ignored bytes.

Clarify that TYPE 0x00 also doesn't require TYPE_LENGTH.
2026-09-24 14:47:14 -07:00
Sjors Provoost 0f8c26b7c2 bip138: specify empty associated data
Make the associated-data input explicit in the encryption and decryption
formulas and specify that it is empty, as used by the existing vectors.
2026-09-24 14:47:10 -07:00
Sjors Provoost 8c1314949e bip138: record metadata clarifications in changelog
Record this branch's clarifications and test vectors under draft document
version 0.1.1. Keep the initial-publication entry in the shared first commit.
2026-09-23 13:59:05 +02:00
Sjors Provoost ffa6bf4944 bip138: clarify zero and omitted birth times
Explain that zero and omission both mean the birth time is unknown.
Recommend scanning from the wallet birthday if known, otherwise from
genesis.
2026-09-23 13:59:05 +02:00
Sjors Provoost 399ea2a091 bip138: clarify derivation ranges using BIP32
Identify range bounds as BIP32 non-hardened child indexes, ordered from
start to end.
2026-09-23 13:59:05 +02:00
Sjors Provoost 51995cc228 bip138: clarify receive-only descriptor sets
Make change_descriptor explicitly optional for non-multipath descriptors.
Add a receive-only document vector with no change descriptor or optional
metadata; the existing vectors cover a receive/change pair and multipath.
2026-09-23 13:55:04 +02:00
Sjors Provoost bf63783c10 bip138: introduce changelog at version 0.1.0
Record the initial published draft using the BIP3 document-version
and changelog convention.
2026-09-23 13:27:10 +02:00
pythcoiner 5af62cba99 bip138: address review 2026-08-18 15:15:05 +00:00
pythcoiner 1ad6f11811 bip138: address review 2026-08-18 11:41:38 +00:00
pythcoiner c21f642b83 bip138: address review 2026-08-18 08:38:49 +00:00
pythcoiner 0fbc187b99 bip138: address review 2026-08-16 06:30:55 +02:00
pythcoiner 65b4c38a02 bip138: address review 2026-07-16 08:32:47 -04:00
pythcoiner 1b1513ebaf bip138: add acknowledgements 2026-07-16 08:30:15 -04:00
pythcoiner e1b35253bc bip138: add Requires header 2026-07-16 08:30:00 -04:00
pythcoiner 5d441163be bip138: address review 2026-07-16 08:06:52 -04:00
pythcoiner d041c01f2f bip138: add a backward compatibility section 2026-07-16 02:38:01 -04:00
pythcoiner f79d0862b8 bip138: address review 2026-07-16 02:19:27 -04:00
pythcoiner 1a157a6418 bip-138 saturate the decoy bucket at the count limit 2026-07-15 02:32:55 -04:00
pythcoiner 86e10c907e bip-138 recommend sorting and deduplicating derivation paths 2026-07-15 01:31:30 -04:00
pythcoiner c1170d4634 bip-138 require warning about excluded key expressions 2026-07-15 00:28:36 -04:00
pythcoiner 317b8fdb2f bip-138 reference the CHACHA20-POLY1305 rationale footnote 2026-07-15 00:28:26 -04:00
pythcoiner 1de39be4e3 bip-138 document why content LENGTH is mandatory 2026-07-15 00:26:20 -04:00
pythcoiner 9f1be26e2f bip-138 recommend sorting and deduplicating individual secrets 2026-07-15 00:26:20 -04:00
pythcoiner 1e776e7a72 bip-138 pad individual secrets with decoys 2026-07-15 00:00:09 -04:00
pythcoiner fb52eaab03 bip-138 document common derivation paths to try automatically 2026-07-15 00:00:08 -04:00
pythcoiner 1358003bc8 bip-138 add string content type 2026-07-14 23:55:04 -04:00
pythcoiner 86f5c28f7c bip-138 treat content type 0x00 as the end of content items 2026-07-14 23:55:04 -04:00
pythcoiner 56deb75d62 bip-138: allow multiple content items per payload 2026-06-30 10:59:17 -04:00
pythcoiner 99217c680f bip-138: reference BIP-0139 for wallet backup metadata 2026-06-18 11:47:17 -04:00
pythcoiner c6b04e23df bip-138: BIP380 content is a bare descriptor or a JSON document 2026-06-18 11:47:17 -04:00
pythcoiner d115620881 bip-138: make BIP380 backup content JSON-only 2026-06-18 11:47:17 -04:00
pythcoiner 810b4df73e bip-138: specify BIP388 wallet policy backup content 2026-06-18 11:46:44 -04:00
pythcoiner 9e2a585a9a bip-138: specify BIP380 descriptor backup content 2026-06-18 03:44:25 -04:00
pythcoiner b7ba2840a9 bip-138: clarify CONTENT is a single TLV and forbid all-zero nonce 2026-06-18 03:02:17 -04:00
pythcoiner 72d8a9533f bip-0138: use assigned BIP number 138 for magic and domain separation tags 2026-06-18 01:51:17 -04:00
pythcoiner 7707cf2935 bip-0138: make PLAINTEXT LENGTH mandatory and add optional payload padding 2026-06-18 01:51:15 -04:00
Murch e9858e8bbe Assign BIP138 2026-05-11 13:09:20 -07:00