Skip to content

bip93: Reject human-readable parts longer than 83 characters #32

Description

@BenWestgate

BIP-93's generalized human-readable part follows the BIP-173 HRP grammar, including the 1–83 character limit. The larger 1023-symbol bound applies to the expanded checksum codeword, not the HRP itself.

Implemented in focused PR #33: enforce the HRP bound at the Bech32 decoding boundary and in public correction contexts. Regression coverage comes from the generalized-HRP draft vectors in BenWestgate/bips PR #2 @ 01374bf: valid 83-character HRP, invalid 84-character HRP, generalized-HRP sharing/recovery, expanded-codeword 94/95 gap cases, and lowercase-HRP checksum behavior. The obsolete >83-character frozen vectors were removed rather than repurposed as checksum-layer tests.

The final refreshed #33 head b1b1b27 is mergeable on the settled foundation stack, all review threads are resolved, exact-head Python-package runs 638 and 639 succeeded, and it has a current-head Codex release-gate ACK. No automated/code-review gap remains.

Keep this issue open through human integration of #33 after #13.

Activity

  1. self-assigned this
    on Sep 24, 2026
  2. added 5 commits that reference this issue on Sep 28, 2026
    823891e
    544eb18
    6c0b312
    2aba6a7
    9f42ece
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area: bip93BIP93 encoding, checksum, parsing, and format rules.gate: adversarial reviewResolve, merge, or explicitly defer before the next full adversarial review.

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions