Welcome, Guest. Please login or register.

Poll

What URL scheme to use

bitto - can be spoken as is, looks nice, but may be confused with bittorrent
2 (4.5%)
bmto - uses "BM", referring to bitmessage, avoiding the possible issue with bitto
3 (6.8%)
bm - very short
4 (9.1%)
bitmessage - longer, but it is clear, what application it targets.
17 (38.6%)
bitmsg - short version of bitmessage, even shorter than 'bitcoin'
18 (40.9%)
I don't like this at all
0 (0%)

Total Members Voted: 28

Author Topic: Bitmessage URL scheme  (Read 10243 times)

AyrA

  • BM-Bc7Rspa4zxAPy9PK26vmcyoovftipStp
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1253
  • Karma: +74/-7
  • bitmessage.ch and timeservice operator
    • View Profile
    • AyrAs Homepage
Bitmessage URL scheme
« on: July 11, 2013, 08:47:14 AM »
Some people requested it and I write it down now. Feel free to propose your own additions.

URL specs:
This post shows, how the URI could be built
Possible URI schemes to vote for:
bmto; bitto; bitmessage; bm, bitmsg
You can vote for 2 you would like to see in the future.

Values in brackets are optional, the examples here use "bitmsg" bacause it will probably get nominated.

Send a message
this follows the mailto scheme. Messages are not sent immediately but displayed in the editor with all fields filled in.
Code: [Select]
bitmsg:address[?subject=text&body=text]

Address can be a valid bitmessage address or the word "broadcast", for broadcasting. In case of "broadcast" it is not case sensitive.
Note: if the DNS inclusion proposal is approved you can also use the DNS name instead of the bitmessage address as the "address" part.

Actions
Action URLs allow to interact with the client. They can be chained together with commas and can be combined with message URLs.
Actions should always ask the user for confirmation if they actually do something. Confirmations should not only allow a user to confirm or deny, but to change the label for example, or set it, if none is provided.
Code: [Select]
bitmsg:address?action=subscribe[&label=text]
bitmsg:address?action=unsubscribe
bitmsg:address?action=add[&label=text]
bitmsg:address?action=remove
bitmsg:address?action=join&label=text
bitmsg:address?action=leave
"add" and "remove" allows to add/remove addresses to the users address book.
"subscribe" and "unsubscribe" subscribe to an address and set the given label or remove the subscription.
"join" and "leave" joins or leaves a DML Address. The label in this case is the password needed to generate it.

Note: The label argument is optional in most cases. While it is not forbidden to specify a label for "unsubscribe,remove,leave" it doesn't do anything.

Example:
The example is color coded and not escaped to make it readable. In reality this URL would be encoded with the default URL encoding mechanism described in RFC 3986, Section 2.1 (how) and Section 2.4 (when)
bitmsg:BM-GuRLKDhQA5hAhE6PDQpkcvbtt1AuXAdQ?subject=Hi&body=I am new to bitmessage&action=add,subscribe&label=24x7 mailing list

This is probably all you can chain together. Send a message to the 24x7 mailing list, add it to the address book and subscribe to it.

Action Confirmation

A window could pop up with the pending actions, allowing the user to change stuff before applying.

+------------------------------------+
|         Bitmessage Action          |
+------------------------------------+
| The folowing Actions are requested |
|                                    |
| [X] Add subscription               |
| [X] Add Address book entry         |
|                                    |
| Address: _BM-Whatever_____________ |
| Label:   _Awesome List____________ |
|  ______                  ________  |
| |  OK  |                | Cancel | |
|  ¯¯¯¯¯¯                  ¯¯¯¯¯¯¯¯  |
|____________________________________|


Example
This is a complete Registry entry as it has to be made in windows to work with the URL "bitmsg".
All what is missing is the implementation in bitmessage.


Windows Registry Editor Version 5.00

;Some basic definitions
[HKEY_CLASSES_ROOT\bitmsg]
@="Bitmessage URI"
"URL Protocol"=""
"Content Type"="application/x-bitmessage"

;This is the File, that contains the icon, either an executable (exe,dll,ocx) with an item index, or an .ico file by itself
[HKEY_CLASSES_ROOT\bitmsg\DefaultIcon]
@="\"C:\\PATH\\TO\\Bitmessage.exe\",0"

;Tells windows to open the Application
[HKEY_CLASSES_ROOT\bitmsg\shell]
@="open"

;This entry must have the same name as the "shell" key above this comment
[HKEY_CLASSES_ROOT\bitmsg\shell\open]

;This is the application to launch. %1 is replaced with the URI.
;The percent escaping is kept or removed, depending on the version of windows.
;An URL handler should always expect an encoded URL

[HKEY_CLASSES_ROOT\bitmsg\shell\open\command]
@="\"C:\\PATH\\TO\\Bitmessage.exe\" \"%1\""


NOTE: The @ in the .reg File above means "the default value of the key" and not a value with the name "@". The comments in the reg file can be left as is, windows ignores them. They are for you, if you want to know, what they do.

Proof of concept
This page converts TXT DNS Records from this proposal into bitmsg links.
« Last Edit: August 15, 2013, 10:58:43 AM by AyrA »
My Address: BM-Bc7Rspa4zxAPy9PK26vmcyoovftipStp
Bitmessage Time Service (Subscribe): BM-BcbRqcFFSQUUmXFKsPJgVQPSiFA3Xash
Support the Multipart Message Declaration Draft for Bitmessage: https://bitmessage.org/forum/index.php/topic,1553.0.html
Free Bitmessage to E-Mail Gateway: https://bitmessage.ch

nimda

  • Full Member
  • ***
  • Posts: 161
  • Karma: +12/-2
    • View Profile
Re: Bitmessage URL scheme
« Reply #1 on: July 11, 2013, 05:41:48 PM »
I support:
  • Use bmto
  • Use percent-encoding like in URLs
  • Prompt the user before adding an address/subscription
It's 90% UI from here. uPnP is a must.
BM-2DARKo7LcCvBiXyyabT5vNxgQ32pBqScuk

r00tz

  • Full Member
  • ***
  • Posts: 111
  • Karma: +3/-2
    • View Profile
    • Green Charter
Re: Bitmessage URL scheme
« Reply #2 on: July 11, 2013, 06:43:10 PM »
Agree all the above
BM-GtShDbJPw1KSJ46Q93SfCawYe3covKau

AyrA

  • BM-Bc7Rspa4zxAPy9PK26vmcyoovftipStp
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1253
  • Karma: +74/-7
  • bitmessage.ch and timeservice operator
    • View Profile
    • AyrAs Homepage
Re: Bitmessage URL scheme
« Reply #3 on: July 11, 2013, 08:20:33 PM »
Use percent-encoding like in URLs
This is anyway done with the URL scheme, I just didn't do it here to make it more readable.
My Address: BM-Bc7Rspa4zxAPy9PK26vmcyoovftipStp
Bitmessage Time Service (Subscribe): BM-BcbRqcFFSQUUmXFKsPJgVQPSiFA3Xash
Support the Multipart Message Declaration Draft for Bitmessage: https://bitmessage.org/forum/index.php/topic,1553.0.html
Free Bitmessage to E-Mail Gateway: https://bitmessage.ch

domob

  • Newbie
  • *
  • Posts: 43
  • Karma: +5/-0
    • View Profile
Re: Bitmessage URL scheme
« Reply #4 on: July 12, 2013, 01:39:04 AM »
I support:
  • Use bmto
  • Use percent-encoding like in URLs
  • Prompt the user before adding an address/subscription

I agree to all of those, too.
Donations: 1domobKsPZ5cWk2kXssD8p8ES1qffGUCm
BM-GtQnWM3vcdorfqpKXsmfHQ4rVYPG5pKS

AyrA

  • BM-Bc7Rspa4zxAPy9PK26vmcyoovftipStp
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1253
  • Karma: +74/-7
  • bitmessage.ch and timeservice operator
    • View Profile
    • AyrAs Homepage
Re: Bitmessage URL scheme
« Reply #5 on: July 12, 2013, 07:42:38 PM »
Question
What is left is the question, what happens on stupid/invalid actions. We have these minimum* possibilities:
add,remove
remove,subscribe
add,unsubscribe
subscribe,unsubscribe

*) you could chain more commands together, for example "add,remove,subscribe,add,subscribe") but I focus on the minimum requirements

I would basically recommend, that no action is taken or bitmesage explicitly warns the user about an "uncommon" action combination.

For regular actions a window could pop up with the pending actions, allowing the user to change stuff before applying.

+------------------------------------+
|         Bitmessage Action          |
+------------------------------------+
| The folowing Actions are requested |
|                                    |
| [X] Add subscription               |
| [X] Add Address book entry         |
|                                    |
| Address: _BM-Whatever_____________ |
| Label:   _Awesome List____________ |
|  ______                  ________  |
| |  OK  |                | Cancel | |
|  ¯¯¯¯¯¯                  ¯¯¯¯¯¯¯¯  |
|____________________________________|
My Address: BM-Bc7Rspa4zxAPy9PK26vmcyoovftipStp
Bitmessage Time Service (Subscribe): BM-BcbRqcFFSQUUmXFKsPJgVQPSiFA3Xash
Support the Multipart Message Declaration Draft for Bitmessage: https://bitmessage.org/forum/index.php/topic,1553.0.html
Free Bitmessage to E-Mail Gateway: https://bitmessage.ch

Atheros

  • Lead Bitmessage developer
  • Administrator
  • Sr. Member
  • *****
  • Posts: 381
  • Karma: +57/-3
    • View Profile
Re: Bitmessage URL scheme
« Reply #6 on: July 13, 2013, 06:58:10 PM »
I nominate bitmessage:...

This list of other URI schemes has many which are longer than 'bitmessage', and 'mailto' is the only one I see that has 'to' in the scheme name even though there are others that deal with messages. I see no reason to have 'to' in ours; even bitcoin's is just 'bitcoin'. Also a lot of the proposed functions, like add and subscribe, do not involve sending a message

AyrA

  • BM-Bc7Rspa4zxAPy9PK26vmcyoovftipStp
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1253
  • Karma: +74/-7
  • bitmessage.ch and timeservice operator
    • View Profile
    • AyrAs Homepage
Re: Bitmessage URL scheme
« Reply #7 on: July 13, 2013, 09:03:41 PM »
I nominate bitmessage:...
I added it as an option to the poll and in the post.

This list of other URI schemes has many which are longer than 'bitmessage' /*...*/ bitcoin's is just 'bitcoin'.
Also a lot of the proposed functions, like add and subscribe, do not involve sending a message
I looked at the bitcoin scheme and it seems like the address is the only required parameter, the rest is optional, so you can basically define "bitcoin:address?label=test" and it is valid.
The reason I added non-message functions is to make it possible to have subscribe buttons or bitmessage vCards you can easily add to bitmessage without the hassle of copy-paste.
My Address: BM-Bc7Rspa4zxAPy9PK26vmcyoovftipStp
Bitmessage Time Service (Subscribe): BM-BcbRqcFFSQUUmXFKsPJgVQPSiFA3Xash
Support the Multipart Message Declaration Draft for Bitmessage: https://bitmessage.org/forum/index.php/topic,1553.0.html
Free Bitmessage to E-Mail Gateway: https://bitmessage.ch

r00tz

  • Full Member
  • ***
  • Posts: 111
  • Karma: +3/-2
    • View Profile
    • Green Charter
Re: Bitmessage URL scheme
« Reply #8 on: July 13, 2013, 11:28:17 PM »
I'd like to change my vote to bitmessage: but i already voted for bmto: earlier. Take that into account :)
BM-GtShDbJPw1KSJ46Q93SfCawYe3covKau

sterius

  • Newbie
  • *
  • Posts: 4
  • Karma: +1/-0
    • View Profile
Re: Bitmessage URL scheme
« Reply #9 on: July 14, 2013, 01:32:09 AM »
bitmessage sounds good, but you can also do bitmsg for those who want it shorter.

r00tz

  • Full Member
  • ***
  • Posts: 111
  • Karma: +3/-2
    • View Profile
    • Green Charter
Re: Bitmessage URL scheme
« Reply #10 on: July 14, 2013, 01:49:53 AM »
Yes agree it would be nice to add bitmsg to the list, I see it is possible to change vote as there is a "remove vote" button, so no need to compensate, I've removed and re-voted already.
BM-GtShDbJPw1KSJ46Q93SfCawYe3covKau

boondoggle

  • Jr. Member
  • **
  • Posts: 56
  • Karma: +3/-0
    • View Profile
Re: Bitmessage URL scheme
« Reply #11 on: July 14, 2013, 05:05:32 AM »
Particularly because it's aimed at ease of use I think "bitmessage" is the best.  It's unambiguous, whereas "BM" could be an acronym for many things.
Address: BM-2cWuhmBvVdfrHhLoZTdspCkKeiTorUesSL

srmojuze

  • Full Member
  • ***
  • Posts: 155
  • Karma: +6/-0
    • View Profile
    • BitChirp.org
Re: Bitmessage URL scheme
« Reply #12 on: July 14, 2013, 06:48:16 AM »
Particularly because it's aimed at ease of use I think "bitmessage" is the best.  It's unambiguous, whereas "BM" could be an acronym for many things.

Agreed. Bitmessage is amazingly powerful and in my view is the PRIMARY contender to replace ALL of email communication for people concerned about P2P, privacy, anonymity, security, etc.

Using "Bitmessage:" will promote Bitmessage for as many people as possible.

Also, just like altcoins, I imagine there will be at some stage forks of Bitmessage to make "alt" message systems.
« Last Edit: July 14, 2013, 06:50:22 AM by srmojuze »

AyrA

  • BM-Bc7Rspa4zxAPy9PK26vmcyoovftipStp
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1253
  • Karma: +74/-7
  • bitmessage.ch and timeservice operator
    • View Profile
    • AyrAs Homepage
Re: Bitmessage URL scheme
« Reply #13 on: July 14, 2013, 08:15:10 AM »
I changed the poll to include "bitmsg", you can now vote for two options, in case you like multiple options
My Address: BM-Bc7Rspa4zxAPy9PK26vmcyoovftipStp
Bitmessage Time Service (Subscribe): BM-BcbRqcFFSQUUmXFKsPJgVQPSiFA3Xash
Support the Multipart Message Declaration Draft for Bitmessage: https://bitmessage.org/forum/index.php/topic,1553.0.html
Free Bitmessage to E-Mail Gateway: https://bitmessage.ch

r00tz

  • Full Member
  • ***
  • Posts: 111
  • Karma: +3/-2
    • View Profile
    • Green Charter
Re: Bitmessage URL scheme
« Reply #14 on: July 14, 2013, 12:53:50 PM »
Great idea, two votes it is :-)
BM-GtShDbJPw1KSJ46Q93SfCawYe3covKau