Daedalus payment URLs
See original GitHub issueDescription
It would be really nice to have a feature that would allow to create a “payment URL”, like:
ada://send?to=DdzFFz...v7xb&amount=100&fees_included=true
And when someone opens this url in their browser - Daedalus (if installed) opens and shows a special dialog, like “Do you really want to send 100 ADA to this address: DdzFFz...v7xb
?” and if user clicks Yes
then Daed asks him to select a wallet he wants to send coins from. This dialog could also allow to change the transaction amount.
Motivation
This feature would allow people to create easy-to-use payment links, or for example - donation links, like “Donate 5 ADA | Donate 10 ADA” under some content, so users don’t have to copy-paste addresses manually.
It maybe very useful for some application and could be a nice solution until ecosystem gets SPVs and full-browser integrations, etc. Once those are present - these links could also lead to other clients, like, if I have lite-client or SPV version of Daedalus installed - it is opened from link. If I have a browser-extension installed (possible in the feature) - then browser dialog is opened from link and allows to send coins thru this browser-client.
Implementation
Sadly I don’t know much details for now, but as I understand - browsers are able to associate some types of links (by protocol, a assume) to certain applications (thru OS, probably), so when mailto
is opened - email-client is launched, and when a telegram-link is opened - desktop telegram client pops-up and processes the link.
I will post comments here, if I get more info about possible implementation details later.
Issue Analytics
- State:
- Created 5 years ago
- Reactions:5
- Comments:12 (5 by maintainers)
Top GitHub Comments
This just shipped with Yoroi 1.8 on both Chrome and Firefox
But the idea here is that
ada://
at the beginning is the protocol to interact specifically with the Cardano platform (wallet, client, plugin, etc.), and the rest are just parameters. Soada://send?coint=BTC
andbtc://send
should probably actually be executed by different wallets on my computer, for example, since one means - “send BTC-equivalent on Cardano chain to another Cardano wallet address”, and other means just “Send normal BTC to another BTC address”.Additional idea is that the
send
is just one of the possible methods, and in the future there could be links for staking pools, for example. Something like:ada://stake?pool_address=...
so when user clicks the link - Daedalus opens specific pool page and proposes to delegate some percentage of your coins to it.Initially I though of these links just as additional “platform API”, that different clients would be able to support. To make it more obvious it may be better to change protocol name to “cardano”, so initial example would look like:
With change like this, specifying coins as parameter seems more appropriate:
And the pool example: