BIP 21 Updates

76 views
Skip to first unread message

Matt Corallo

unread,
May 30, 2024, 6:00:02 PMMay 30
to Bitcoin Development Mailing List
It was recently pointed out at [1] that BIP 21 mandates only base58 adresses, and doesn't allow for
segwit or taproot addresses in the body of the URI. This is obviously somewhat nonsensical as nearly
every wallet supporting BIP 21 today handles Segwit (and many even Taproot) just fine in that
position today.

Further, nearly every BIP 21-handling lightning wallet today also supports decoding lightning
payment instructions in the query parameters. With Silent Payments and BOLT 12 starting to get
adoption and BIP 21 being the obvious place to put extra payment instructions with an (optional)
on-chain fallback, there needs to be a standard way to decide which query parameter describes which
payment instruction, and BIP 21 should document this in-practice usage.

Further, as future payment schemes (and existing ones like Silent Payments) may wish to not have the
standard on-chain fallback, I'm also proposing the body of the URI be made optional.

None of these changes impact any existing wallets, as wallets already support bech32 and bech32m
addresses, new query parameters are ignored by any existing spec-compliant wallet, and a BIP 21 URI
with no body would only exist to provide a URI *without* a fallback for existing wallets, which
would correctly reject them as invalid.

Thus, I'm proposing a change to (the already "Final") BIP 21. The relatively minimal change set is
available at https://github.com/bitcoin/bips/pull/1555 but I'm open to discussion on it here as well.

[1] https://github.com/bitcoin/bips/pull/1394
Reply all
Reply to author
Forward
0 new messages