URI Handling in Bitcoin-Qt
4 messages, 3 to 4 May 2012. Started by Alan Reiner.
Alan Reiner (2), Wladimir J. van der Laan, Andreas Schildbach
I want to follow up on BIP 21 (URI scheme), which I have recently implemented in Armory and I have become a huge fan of it. But I've got a couple gripes:
*(1) *What is the status & plans for supporting "bitcoin:" URIs in the Satoshi client? My understanding is that it currently creates URIs, but does *not* register itself with the OS to handle such links. Is this accurate? This seems like a very high-value feature, and I'd recommend that we consider it a priority -- I can't think of any other upgrade that can improve usability so dramatically on the desktop.
After implementing it all in Armory, I wrote up a walk-thru <https://bitcointalk.org/index.php?topic=79010.msg879804#msg879804> recounting how I did the OS-registration in Windows and gnome-based *nix systems. Perhaps it can give the Bitcoin-Qt devs a jumpstart on getting it implemented. (and then I can get feedback about doing for generic Linux and Mac/OSX)
*(2) *I need to understand better what the intentions were behind "label=" and "message=". The way I understand it is that Bitcoin-Qt uses and stores only address-labels, and no other transactional info is stored in the wallet. As such, the "message=" field would be displayed to the user when a "bitcoin:" link is clicked, but that message wouldn't be saved anywhere.
However, I think, especially if a new wallet format is in the works, that both should be supported: "Address Labels" *and *"Transaction Labels". The real difference is that merchants can include things Order#, purchase information, etc, in the "message" field, and then put only their business name in the "label" field. This means that when the user is looking at their address book, they see just the owners of the addresses. When they look at the transaction ledger/history, they see a full list of everything they purchased, prices, contact info, etc. The distinction is much more important for persistent addresses, but still important.
This is exactly how I did it in Armory, but if Bitcoin-Qt won't do it that way, I should be promoting all important information be jammed into the "label" field.
*(3) *How are the other clients implementing this? Do you make any distinction between "label" and "message"?
-Alan
On Thu, May 3, 2012 at 6:28 AM, Alan Reiner <etotheipi@gmail•com> wrote:
Quoted text (8 lines)
> ** > *(1) *What is the status & plans for supporting "bitcoin:" URIs in the > Satoshi client? My understanding is that it currently creates URIs, but > does *not* register itself with the OS to handle such links. Is this > accurate? This seems like a very high-value feature, and I'd recommend > that we consider it a priority -- I can't think of any other upgrade that > can improve usability so dramatically on the desktop. >
It is already implemented for Linux (Gnome) and Windows, but there is an issue with boost::ipc that crashed bitcoin at startup on windows, so it's temporarily disabled on Windows.
Quoted text (7 lines)
> *(2) *I need to understand better what the intentions were behind > "label=" and "message=". The way I understand it is that Bitcoin-Qt uses > and stores only address-labels, and no other transactional info is stored > in the wallet. As such, the "message=" field would be displayed to the > user when a "bitcoin:" link is clicked, but that message wouldn't be saved > anywhere. >
Label is a label for the destination address, message is a freeform message describing the transaction.
I don't think the message is currently stored in the Satoshi client. That feature is somewhere on our way-too-long issue and todo list.
But I understand that you want to add transaction meta-data fields such as contact information, bought items, item prices?
Wladimir
On 05/03/2012 06:28 AM, Alan Reiner wrote:
Quoted text (2 lines)
> *(3) *How are the other clients implementing this? Do you make any > distinction between "label" and "message"?
Bitcoin Wallet for Android currently ignores both fields. At least temporarly displaying the transaction message is on my short-term todo list.
On 05/03/2012 01:46 AM, Wladimir wrote:
Quoted text (11 lines)
> > Label is a label for the destination address, message is a freeform > message describing the transaction. > > I don't think the message is currently stored in the Satoshi client. > That feature is somewhere on our way-too-long issue and todo list. > > But I understand that you want to add transaction meta-data fields > such as contact information, bought items, item prices? > >
I don't want to add fields to the URI-spec, I just want to add them /to the client/. To me, it is ideal to have separate strings for labeling /addresses/ vs labeling /transactions/ -- i.e. different strings would show up in the address book (owner info) than what shows up in the transaction history (purchase info). I say it's ideal because that concept seems to fit perfectly with availability of "label=" and "message=" fields in BIP 21, but it won't actually work if Bitcoin-Qt won't/can't do it that way.
For now, it seems that I should count on all important information being in the /label/ field, since users creating URLs would have to assume anything in the /message/ field will not be saved. Though I imagine the message data will be /displayed/ after the URI is clicked, just not saved.
To expand the concept slightly further, it might make sense in the future for users to populate the /message/ and /label /fields with lots of data, using newlines. The first line would be used as a summary and displayed in the address book and ledger. The extra lines would all be displayed when the user opens up a details window. All of it would be automatically generated by the merchant, and the purchaser would end up with detailed documentation on every purchase they've made for zero effort.
-Alan