-
Notifications
You must be signed in to change notification settings - Fork 31
Description
Describe the enhancement
A new transaction builder crate should add an optional feature to enable DNS payment instructions support. If this option is enabled the builder will include a new function to add a recipient via their DNS payment instructions name, i.e. ₿user@domain
or user@domain
, instead of a bitcoin address.
An error must be thrown if the DNS payment instructions lookup does not return valid payment instructions that include an on-chain address. An error should also be thrown if the user supplied payment amount does not equal the returned payment instructions fixed amount or is not in the min/max range for a configurable amount.
If a DNS payment instructions derived address is used for an output then the PSBT_OUT_DNSSEC_PROOF
must also be included in the resulting PSBT.
Use case
This feature will allow a wallet developer to enable paying recipients via their human readable DNS payment instructions name. It will also allow hardware wallets that support BIP353 to validate and display the recipients payment instructions name.
Initially this will only support static on-chain addresses which are likely to be reused and thus be less private. But when BDK is able to support Silent Payments this feature can be used in a way that avoids address reuse.
For a full run-down of the pros/cons see BIP353.
Additional context
BIP 21: URI Scheme
BIP 353: DNS Payment Instructions
BIP 352: Silent Payments
@TheBlueMatt created a new bitcoin-payment-instructions crate to lookup, validate and parse DNS bitcoin payment instructions. It should make the implementation of this feature pretty straight forward. See discussion on discord.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status