Bitcoin Forum
April 25, 2024, 01:43:27 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Request: Let's support "bitcoin:" URLs!  (Read 3872 times)
etotheipi (OP)
Legendary
*
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
May 02, 2012, 01:47:20 AM
Last edit: May 03, 2012, 04:09:48 AM by etotheipi
 #1

So I just went to a lot of effort to get Armory to handle "bitcoin:" URLs, and getting it to register itself as the default handler for "bitcoin:" links in both Windows and Linux (or requesting permission from the user to change it if another app is set).  It was a lot of work but totally worth the effort in my opinion.  Because these clickable URL's an awesome improvement to Bitcoin on the internet!

But twice now I've purchased something online, and been met with payment sites that could trivially support them but don't!   CoinDL and Bit-pay.  This is not meant to be a complaint as much as a request:  this is super-easy to support and is awesomely useful!  

Consider CoinDL, which is a service for downloading music for Bitcoins.  The user clicks on the track they want and a payment box pops up.  If they put a bitcoin URL on there, the user simply clicks on it and Bitcoin-Qt/Multibit/Armory pops up with data pre-filled in.   "Address", "Amount" both filled in, and "<Artist> - <Album>: <Track>" already included in the transaction label/comments.  Now all they do is confirm and click send!  (and probably type in an encryption passphrase).  No copy&paste necessary, at all.  Period.

Not only is it a super-smooth experience for the user, but the user ends up with a well-documented transaction history of their music purchases along with dates and prices.  The merchant is better equipped to give a meaningful tx-comment anyway:  they can trivially put the Order# and purchase information into the message field of the URL so the user ends up with all of it documented for zero effort.  Worst case the user doesn't like it and change it before they hit send...

Here is the Bitcoin URI Spec and below is a simple example of how you would include it (using my donation address, of course!)

Code:
<a href="bitcoin:1ArmoryXcfq7TnCSuZa9fQjRYwJ4bkRKfv?amount=1.0&label=Armory%20Donation%20Address&message=Donation%20to%20Armory">Donate 1.0 BTC to the Armory Project!</a>

...which looks like:  Donate 1.0 BTC to the Armory Project!

Messages and labels in the URL can be universally encoded using the percent encoding scheme.  It consists of taking the message you want to put into the URL, and replacing all spaces with "%20", all exclamation points with %21, etc.  It's all on that link.

Just do it!


EDIT: I posted a walk-thru of the technical details for supporting URLs, which addresses both merchants and registering your application with the OS.  I posted what I've learned over the past two weeks, and wouldn't mind some feedback if folks have experience with the OS-registration stuff (specifically, Unity or KDE-based Linux systems, and Mac/OSX in general)

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
1714052607
Hero Member
*
Offline Offline

Posts: 1714052607

View Profile Personal Message (Offline)

Ignore
1714052607
Reply with quote  #2

1714052607
Report to moderator
1714052607
Hero Member
*
Offline Offline

Posts: 1714052607

View Profile Personal Message (Offline)

Ignore
1714052607
Reply with quote  #2

1714052607
Report to moderator
1714052607
Hero Member
*
Offline Offline

Posts: 1714052607

View Profile Personal Message (Offline)

Ignore
1714052607
Reply with quote  #2

1714052607
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714052607
Hero Member
*
Offline Offline

Posts: 1714052607

View Profile Personal Message (Offline)

Ignore
1714052607
Reply with quote  #2

1714052607
Report to moderator
Littleshop
Legendary
*
Offline Offline

Activity: 1386
Merit: 1003



View Profile WWW
May 02, 2012, 01:59:59 AM
 #2

This would be a great improvement to bitcoin.  It has been talked about before but it seems to be one of the last easy improvements that will have a great impact on usage and adoption. 

Maged
Legendary
*
Offline Offline

Activity: 1204
Merit: 1015


View Profile
May 02, 2012, 02:08:09 AM
 #3

On the plus side, this very forum already supports bitcoin URIs!

See my sig for an example Tongue

BitPay Business Solutions
Hero Member
*****
Offline Offline

Activity: 742
Merit: 500


View Profile WWW
May 02, 2012, 02:11:05 AM
 #4

Our QR code on every Bit-Pay invoice is the bitcoin: URI, and I can confirm it works with 3 mobile wallets.  Blockchain (iPhone), Bitcoin Wallet (Android) and BitcoinSpinner (Android).  I have paid a Bit-Pay invoice by scanning the QR code and it worked flawlessly.

We did have a clickable link as well, but none of the clients supported it, so we took it off.  Now that Armory does, we will make sure this gets added back to the site with the next update.


BitPay : The World Leader in Bitcoin Business Solutions

https://bitpay.com

Does your website accept bitcoins?
etotheipi (OP)
Legendary
*
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
May 02, 2012, 02:15:36 AM
 #5

Our QR code on every Bit-Pay invoice is the bitcoin: URI, and I can confirm it works with 3 mobile wallets.  Blockchain (iPhone), Bitcoin Wallet (Android) and BitcoinSpinner (Android).  I have paid a Bit-Pay invoice by scanning the QR code and it worked flawlessly.

We did have a clickable link as well, but none of the clients supported it, so we took it off.  Now that Armory does, we will make sure this gets added back to the site with the next update.

Glad to see I have enough street-cred to encourage alone you to re-activate the feature Smiley  

But, I know that Multibit also has support for it, too (with the OS registration).  I thought that Bitcoin-Qt did too, but I haven't seen it work yet...

I didn't realize the QR code used it.  Good to know!  


P.S. -- URL support was added only to the very latest version of Armory: version 0.75.  Previous versions won't work.

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
payb.tc
Hero Member
*****
Offline Offline

Activity: 812
Merit: 1000



View Profile
May 02, 2012, 02:50:35 AM
 #6

one small issue i see is that having the full bitcoin address as clickable, will make it harder to copy+paste if that's what is needed.

better to have the address in plain text, and then a link next to it.
etotheipi (OP)
Legendary
*
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
May 02, 2012, 02:56:37 AM
 #7

one small issue i see is that having the full bitcoin address as clickable, will make it harder to copy+paste if that's what is needed.

better to have the address in plain text, and then a link next to it.


Agreed.  It's not necessary to have it as one/only object.  But there's plenty of space on these forms/windows/boxes to add a link for convenience for us users that do have supporting clients.

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
weex
Legendary
*
Offline Offline

Activity: 1102
Merit: 1014



View Profile
May 02, 2012, 03:20:51 AM
 #8

I'm totally into doing this for CoinDL. I've just done a little survey of mobile apps and it appears almost all have Bitcoin URI support. So expect the QR code to be updated and a link as well.

Thanks etotheipi for the initiative and for highlighting an opportunity to again move toward the goal of making Bitcoin easy!
ThomasV
Legendary
*
Offline Offline

Activity: 1896
Merit: 1353



View Profile WWW
May 02, 2012, 05:26:34 AM
 #9

We did have a clickable link as well, but none of the clients supported it, so we took it off.  Now that Armory does, we will make sure this gets added back to the site with the next update.

none of the clients, really? Electrum and Multibit have been supporting bitcoin: URIs for months...

Electrum: the convenience of a web wallet, without the risks
istar
Hero Member
*****
Offline Offline

Activity: 523
Merit: 500


View Profile
May 02, 2012, 08:43:53 AM
 #10

I'm totally into doing this for CoinDL. I've just done a little survey of mobile apps and it appears almost all have Bitcoin URI support. So expect the QR code to be updated and a link as well.

Thanks etotheipi for the initiative and for highlighting an opportunity to again move toward the goal of making Bitcoin easy!

Great one problem with using your site from a mobile is that the QR code, does not center on the screen and becomes very tiny.

Bitcoins - Because we should not pay to use our money
Jan
Legendary
*
Offline Offline

Activity: 1043
Merit: 1002



View Profile
May 02, 2012, 11:08:07 AM
 #11

...
Here is the Bitcoin URI Spec and below is a simple example of how you would include it (using my donation address, of course!)

Code:
<a href="bitcoin:1ArmoryXcfq7TnCSuZa9fQjRYwJ4bkRKfv?amount=1.0&label=Armory%20Donation%20Address&message=Donation%20to%20Armory">Donate!</a>

Just do it!
...
+1
This is an important part of making payment easy.
On a side note, the Blockchain app for iPhone uses this format "bitcoin://....". I am considering to let BitcoinSpinner accept it, but I'd prefer if we can just use the standatd. Piuk, please fix this.

Mycelium let's you hold your private keys private.
Kris
Donator
Hero Member
*
Offline Offline

Activity: 640
Merit: 500


View Profile
May 02, 2012, 01:31:24 PM
 #12

I have tried to implement this the best way I could think of into Laybit as a form of fallback if the user doesn't have JavaScript enabled.

http://bitcoinmedia.com/laybit-donation-buttons/

It is in fact a most awesome way for payment "links"
weex
Legendary
*
Offline Offline

Activity: 1102
Merit: 1014



View Profile
May 02, 2012, 03:47:24 PM
 #13

I've updated CoinDL QR codes and added a Buy Now button that points to the URI. Looking forward to seeing many more sites accepting these links!
etotheipi (OP)
Legendary
*
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
May 02, 2012, 04:32:06 PM
Last edit: May 03, 2012, 04:07:21 AM by etotheipi
 #14

Does Bitcoin-Qt support the URLs?  I thought they did, but I haven't seen any evidence of it.  I think we should encourage the devs to step up support for it because Bitcoin-Qt is still used by most users and it's really not hard.

I recently figured out how to do it reliably and responsibly through non-admin-modifications of user-registry settings.  Much the same way that Firefox/IE/Chrome check and modify on load for "http://" links.    It seems that all they would have to do is check the registry settings for it on load and request to change it if some other app is currently set.  

Well, that's all I did in Armory, but of course everything is always easy in python Smiley  ("import _winreg")  

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
etotheipi (OP)
Legendary
*
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
May 02, 2012, 05:30:59 PM
 #15

I've updated CoinDL QR codes and added a Buy Now button that points to the URI. Looking forward to seeing many more sites accepting these links!

Hey Weex,

That's great.  Just one recommendation.  I believe that we should use the "Label" field to mark the address, and "Message" to mark the transaction.  At least that's how I do it in Armory:  The "label=" is what shows up when you're looking through your address book, but the "message=" is what shows up when looking at your transaction history.  For the case that every tx uses a different address, I don't think it matters too much.  But it's a distinction that might be worth mentioning (notice my original example where I use both), or at least someone can correct me if they think I have it wrong.

Also, you can put spaces and other special chars in the URL using percent encoding.  Use %20 for spaces, %28 and %29 for left and right parentheses, etc.  I'll add that link to the original post.  And add a link in the Technical forums for the Registry settings I mentioned above.

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
weex
Legendary
*
Offline Offline

Activity: 1102
Merit: 1014



View Profile
May 03, 2012, 01:07:07 AM
 #16

etotheipi,

From https://en.bitcoin.it/wiki/URI_Scheme
Quote
Query Keys

    label: Label for that address (e.g. name of receiver)
    address: bitcoin address
    message: message that shown to the user after scanning the QR code
    size: amount of base bitcoin units (see below)
    send: used to send bitcoin, rather than to request them
    (others): optional, for future extensions

I take this to mean the label: should be "CoinDL" and the message: should be something like "Purchase of Alco (https://www.coindl.com/page/item/127)". Does this interpretation seem correct? Is there another more definitive standard document on this?

-weex

etotheipi (OP)
Legendary
*
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
May 03, 2012, 02:26:52 AM
 #17

etotheipi,

From https://en.bitcoin.it/wiki/URI_Scheme
Quote
Query Keys

    label: Label for that address (e.g. name of receiver)
    address: bitcoin address
    message: message that shown to the user after scanning the QR code
    size: amount of base bitcoin units (see below)
    send: used to send bitcoin, rather than to request them
    (others): optional, for future extensions

I take this to mean the label: should be "CoinDL" and the message: should be something like "Purchase of Alco (https://www.coindl.com/page/item/127)". Does this interpretation seem correct? Is there another more definitive standard document on this?

-weex


That's actually the wrong document (that's BIP 20), which was ultimately replaced by BIP 21.  But BIP 21 doesn't say much else beyond that.  

The issue is that Bitcoin-Qt only uses labels.  The above suggests that "Message" is only for showing when the user clicks/reads the URL, but that Bitcoin-Qt may not save that information anywhere in the wallet.  It might be better just to put all of it into the label.  This is frustrating, because it makes more sense (to me) to use it as I described it and implemented it in Armory, but it may not achieve the desired result with Bitcoin-Qt.  

How does Multibit and Electrum deal with "label=" and "message=" fields?

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
mc_lovin
Legendary
*
Offline Offline

Activity: 1190
Merit: 1000


www.bitcointrading.com


View Profile WWW
May 03, 2012, 03:54:03 AM
 #18

That is awesome, bitcoin totally deserves it's own link type.  With tools like these, future newbies to the currency will be able to use bitcoin just as easy as learning email! Smiley
weex
Legendary
*
Offline Offline

Activity: 1102
Merit: 1014



View Profile
May 03, 2012, 03:59:16 AM
 #19

On the issue of label vs label+message I think I'll stick with the label for now. It's a pretty minor aspect as far as ux goes but adjustments can be made later if users can benefit from some additional messaging.
etotheipi (OP)
Legendary
*
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
May 03, 2012, 04:06:02 AM
 #20

On the issue of label vs label+message I think I'll stick with the label for now. It's a pretty minor aspect as far as ux goes but adjustments can be made later if users can benefit from some additional messaging.

I'll pester the devs on the mailing list about it.  I think it definitely makes sense to have both, but I'm guessing they didn't do it that way. 

The label-only thing sounds good -- I would prefix the labels with "CoinDL%3A%20" ("CoinDL: ") and then put the purchase after it.  It'll show up fine in Armory like that, just a slightly sub-optimal Smiley

I guess I should also pester them about URL-registration, in general. 

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!