bitcoin-dev

BIP 21 Updates

Original Postby Matt Corallo

Posted on: May 30, 2024 21:54 UTC

The ongoing discussion emphasizes the necessity for updating BIP 21 to accommodate modern Bitcoin payment practices.

It's highlighted that BIP 21, as it stands, solely mandates base58 addresses and does not officially support Segwit or Taproot addresses within URI bodies. This restriction is increasingly seen as outdated, given that a significant portion of wallets that comply with BIP 21 already facilitate transactions using Segwit and Taproot addresses. Moreover, these wallets are capable of decoding lightning payment instructions embedded within URI query parameters.

There's an acknowledgment of the growing adoption of Silent Payments and BOLT 12, which positions BIP 21 as a potential standard bearer for embedding additional payment instructions alongside an optional on-chain fallback mechanism. The proposal suggests a reevaluation of how BIP 21 URIs are structured to ensure they can seamlessly integrate various payment instructions through distinct query parameters. Additionally, it proposes making the body of the URI optional to cater to payment schemes that may not require a standard on-chain fallback, thereby not affecting existing wallet operations since such wallets already disregard unrecognized new query parameters and would reject a BIP 21 URI lacking a body as invalid.

To address these concerns and suggestions, a change proposal has been submitted for BIP 21, detailed in a pull request available at GitHub. This proposed adjustment aims to document and legitimize the in-practice usage of advanced addressing and payment instruction methods without compromising the functionality of existing spec-compliant wallets. The intent behind these amendments is clear: to modernize BIP 21 in line with current and future Bitcoin transaction technologies while maintaining backward compatibility and forward-looking flexibility.