Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: jim618 on July 06, 2012, 02:04:40 PM



Title: Showing the fiat equivalents in transactions - adding 'fiat=' to bitcoin URIs
Post by: jim618 on July 06, 2012, 02:04:40 PM
I was thinking today about how best to show the fiat equivalents for bitcoin amounts.
(Fiat = USD, GBP, EUR - I will just use USD in this post but it applies to them all).

There is a slight problem in that exchange rates are not fixed so if 1 BTC = 6.5 USD today, maybe next week it is 7.0 USD. How best to show this on a user interface ?

If you notice on blockchain.info and Electrum Lite you see phrases such as "X BTC (about $Y)".   (my emphasis). We all have the same problem. I do not think there is a place for 'about' when dealing with money.


I think we can fix a lot of things by adding the fiat amount being requested to bitcoin URIs. An example:

Alice goes to BobsChocolates.com and wants to buy some chocolates for $40, which currently is 6.06 BTC. The URI payment request shown on the website would currently be:

    bitcoin:<address>?amount=6.06&label=BobsChocolates

I propose we add the fiat amount to the bitcoin URI as follows:

    bitcoin:<address>?amount=6.06&label=BobsChocolates&fiat=USD40


This gives the following advantages:
  • On Alice's user interface you can show the exact amount in USD, which I am assuming Alice is more familiar with.  
          "Do you want to pay $40.00 (6.06 BTC) to "BobsChocolates" ?
  • On Bobs interface - he can track his payments in both USD and BTC as appropriate. (His suppliers probably still want USD).
  • When the exchange rate varies the user interface can show the user either the USD amount at time of transaction ($40) or the dollar amount now, using the current exchange rate. Thus you can reconcile currency changes as you have to with any multi-currency dealings.
  • Heresy I know: But you could hardly show bitcoins on the user interface at all !

To illustrate an "all dollar" exchange:

1) Charlie wants to request a dollar amount from Dana. He enters $20 on his "Request" page.
2) The USD amount is converted to BTC. (currently 3.04 BTC).
3) A URI is created with a fiat tag recording the fiat amount. (bitcoin:<address>?amount=3.04&label=LoveAndKisses&fiat=USD20)
4) Dana scans the tag and sees the fiat amount (plus the BTC amount if she is really interested).
5) The payment is made as 3.04 BTC but it is shown on the user interface as the transaction dollar amount ($20).

Both Charlie and Dana's records show the amount as $20.


There is of course an implicit exchange rate between the BTC and fiat amount on the URI. This in some ways is a negociation - a vendor is saying with a URI:
   "I want you to pay 6.06 BTC for these chocolates and I am saying that the dollar amount is $40.00"

The payer either agrees and pays it or disagrees and out-of-band makes a counter offer or simply walks away.

I would assume UIs would be "exchange rate aware" with options for checking the implicit rate in a URI is believable. You can imagine warning messages like:
"Do you want to pay $40.00 (6.06 BTC) for BobsChocolates ?
 WARNING: This is a shockingly bad exchange rate"

I imagine the MtGox last price would be used as the default exchange rate as that has the lowest bid-ask difference, with settings for things like:
  • use a fixed rate, with entry box
  • use the Intersango last price
  • etc

Your feedback is very welcome!


Title: Re: Showing the fiat equivalents in transactions - adding 'fiat=' to bitcoin URIs
Post by: grue on July 06, 2012, 02:24:57 PM
if the UI is "exchange rate aware", why bother encoding the fait amount?


Title: Re: Showing the fiat equivalents in transactions - adding 'fiat=' to bitcoin URIs
Post by: Maged on July 06, 2012, 02:26:43 PM
if the UI is "exchange rate aware", why bother encoding the fait amount?
Potentially, different businesses would have slightly different exchange rates. This is important for tax purposes.


Title: Re: Showing the fiat equivalents in transactions - adding 'fiat=' to bitcoin URIs
Post by: jim618 on July 06, 2012, 03:06:12 PM
if the UI is "exchange rate aware", why bother encoding the fait amount?

For people not familiar with bitcoin, if they sent "$20" to someone (ie the BTC equivalent) but the recipient only received "$19.80" when it confirmed (due to a 1% exchange rate change)  they would think the 20c was stolen.

The exchange rate used in the payment request is actually part of the offer.


Title: Re: Showing the fiat equivalents in transactions - adding 'fiat=' to bitcoin URIs
Post by: Foxpup on July 07, 2012, 12:57:29 AM
This is a stupid idea. For starters it isn't how people are normally used to dealing with foreign currency (which is ideally what they should be treating Bitcoin as). When I buy something online for €10, I know that it's going to show up on my bank statement as about $12, depending on what the current exchange happens to be at the time I make my purchase. I do not expect the store to say "That'll be $12.05 exactly." only to find, on closer inspection of my bank statement, that it actually cost $12.50. Good accounting requires that exact prices be quoted in whatever currency the merchant is actually using, with exchange rates calculated by the agent performing the actual currency exchange. People expect exchange rates to fluctuate, and will be horribly confused if merchants start giving exact exchange rates when they're not actually exchanging currency at all.


Title: Re: Showing the fiat equivalents in transactions - adding 'fiat=' to bitcoin URIs
Post by: PatrickHarnett on July 07, 2012, 01:04:01 AM
I can understand some people wanting that, but it doesn't actually help.

I have no particular interest in holding USD, EUR or GBP.  I tend to spend JPY and sometimes SGD when holidaying or AUD.  I have some PhP lying around on my desk and managed to convert my XPF into FJD some time ago.  (I actually think I gave away my spare EUR to someone that normally uses NOK.)

I do business in BTC and movements to the USD don't matter.  It's the same as someone trading in EUR, they don't care about the USD either.


Title: Re: Showing the fiat equivalents in transactions - adding 'fiat=' to bitcoin URIs
Post by: jim618 on July 07, 2012, 05:36:54 AM
@Foxpup,  Patrick.

Good points from both of you, especially that only the person doing an exchange can realistically quote an exchange rate.

I think the corollary to that is that it is not really possible to have a 'dollar only' or 'euro only' user interface when the unit of account is bitcoin. There is always an exchange rate to and from bitcoin lurking around that cannot be avoided. I mentioned this as some nationalities are only really used to dealing in their home currency and aren't that familiar with converting currencies.

I used to work for an accountancy software company and it supported different currencies for the actual transaction and the currency that the accounts were presented in so it is perfectly possible to use two currencies simultaneously, tracking the exchange rates used.  We actually had three currencies sometimes because in the early euro days you had 'euro triangulation' when you exchanged, say, French Francs to DM via two separate quoted rates. That got complicated though.

From the feedback in this thread it feels that bitcoin users would prefer just having bitcoin as the unit of account and leaving it at that.


Title: Re: Showing the fiat equivalents in transactions - adding 'fiat=' to bitcoin URIs
Post by: TheButterZone on July 07, 2012, 07:11:06 AM
I'd prefer not to have to calculate the BTC from USD (or have my customers do it), but as part of the URI? IDK... I'd almost rather have an app modified (like Bitcoin Ticker), or created, to do voice recognition conversion, Siri-style. Like you say "twenty USD to BTC" and it replies "two point nine-nine BTC".


Title: Re: Showing the fiat equivalents in transactions - adding 'fiat=' to bitcoin URIs
Post by: jim618 on July 07, 2012, 07:30:45 AM
Yes - I think having easy conversion when you do a send is a good idea.
1) choose your preferred currency in preferences
2) you enter $20 and it gets converts to X BTC
3) the send is then for the X BTC



Title: Re: Showing the fiat equivalents in transactions - adding 'fiat=' to bitcoin URIs
Post by: payb.tc on July 07, 2012, 08:13:01 AM
hopefully as exchange rates stabilize you can just convince bobschocolates.com to always charge exactly 6 BTC.


Title: Re: Showing the fiat equivalents in transactions - adding 'fiat=' to bitcoin URIs
Post by: TheButterZone on July 08, 2012, 07:09:23 AM
Just found the solution I wanted: https://bitcointalk.org/index.php?topic=92135.msg1016106#msg1016106