bip138: clarify receive-only descriptor set, 0 birth time, and BIP32 range #2298

pull Sjors wants to merge 5 commits into bitcoin:master from Sjors:2026/09/bip138-metadata changing 2 files +32 −4
  1. Sjors commented at 12:08 PM on September 23, 2026: member

    This PR makes a couple of clarifications around the descriptor (and bip388 policy) sets.

    It adds one test vector, but shouldn't be a breaking change.

    Three middle commits:

    • clarify receive-only descriptor sets: add a test vector importing just a receive descriptor, with no metadata
    • clarify derivation ranges using BIP32: clarifies bounds for range
    • bip138: clarify zero and omitted birth times: importers SHOULD rescan from the wallet birthday if known, otherwise from genesis.

    The first commit introduces a changelog. I'm reusing that commit across a few parallel pull requests.

    The last commit updates the changelog; I'll update that depending on merge order.

  2. bip138: introduce changelog at version 0.1.0
    Record the initial published draft using the BIP3 document-version
    and changelog convention.
    bf63783c10
  3. 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.
    51995cc228
  4. bip138: clarify derivation ranges using BIP32
    Identify range bounds as BIP32 non-hardened child indexes, ordered from
    start to end.
    399ea2a091
  5. 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.
    ffa6bf4944
  6. 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.
    8c1314949e
  7. Sjors commented at 12:09 PM on September 23, 2026: member
  8. jonatack added the label Metadata Update on Sep 23, 2026
  9. jonatack added the label Fixups on Sep 23, 2026
  10. murchandamus commented at 4:22 PM on September 23, 2026: member

    Mostly fixup, but changes the semantics of change_descriptor.

  11. Sjors referenced this in commit 9facc6aab1 on Sep 23, 2026
  12. Sjors referenced this in commit e3cf2e1764 on Sep 23, 2026
  13. pythcoiner commented at 6:41 AM on September 24, 2026: contributor

    ACK 8c131494

  14. Sjors commented at 8:49 AM on September 24, 2026: member

    changes the semantics of change_descriptor.

    I've always understood and implemented it in the way described here: it's optional.

  15. pythcoiner commented at 11:27 AM on September 24, 2026: contributor

    I also had implemented it optional

  16. jonatack commented at 7:18 PM on September 24, 2026: member

    ACK

  17. jonatack merged this on Sep 24, 2026
  18. jonatack closed this on Sep 24, 2026

  19. Sjors deleted the branch on Sep 25, 2026

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bips. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-09-30 16:10 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me