Hello community, I had some time to work on this idea some more and would like to present it for everyone's comment:
Title: Extension to URI Scheme (BIP21) enabling currency exchange presentation
Author: John Bailon <[email protected]>
Status: Proposed
Type: Standards Track
Created: 2016-06-30This BIP is a modification of an earlier
BIP 0021 by Nils Schneider and Matt Corallo. BIP 0021 was based off an earlier document by Luke Dashjr. Exchange rates, its validity, and destination currency are added.
AbstractThis BIP proposes additional query keys to the URI scheme for making Bitcoin payments that are automatically converted to a different currency by address owner.
MotivationThe purpose of these additional query keys is to enable users to easily view destination currency and exchange rate at which their Bitcoin payment will be converted to by address owner. The rates are also time-bound by an expiration timestamp.
Added Exchange Rate Related Query Keys*exchange-currency: Currency at which the address owner/payment recipient will convert the payment to, following
ISO 4217 standard, if available.
*exchange-rate: The rate at which bitcoins sent will be converted to the destination currency represented in decimal number format. This number shall be multiplied to whatever amount is sent.
*exchange-expiry: Unix timestamp of when the exchange rate expires.
Note: It is optional to use these three new keys altogether, however when one is used, the two other keys are required.
Presentation and ControlBitcoin clients should make sure that when the user has hit send, a reasonable amount of time is left before the exchange_rate_expiry has elapsed.
Bitcoin clients presenting a Bitcoin address with the 3 exchange- keys should monitor the expiry timestamp and present to the user a notice when the expiration timestamp has elapsed. The user may be asked or can be automatically presented a refreshed rate.
Accessibility (URI scheme name)Similar to BIP 0021, should someone from the outside happen to see such a URI, the URI scheme name already gives a description.
Simple syntaxRequest 1 BTC to be converted to USD at a rate of 642.25, valid until 12:00 AM, July 1, 2016 UTC:
bitcoin:1JohnxNT6jRzhu3H1wgVFbSGKmHP4EUjUV?amount=1&exchange-currency=usd&exchange-rate=642.25&exchange-expiry=1467331200
Request to receive any amount to be converted to ETH at a rate of 51.786639047, valid until 12:00 AM, July 1, 2016 UTC:
bitcoin:1JohnxNT6jRzhu3H1wgVFbSGKmHP4EUjUV?&exchange-currency=eth&exchange-rate=51.786639047&exchange-expiry=1467331200
Note: Characters must be URI encoded properly.