Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CIP-0047? | Proposal for open Daedalus or desktop wallet via URL #234

Conversation

danielmain
Copy link
Contributor

@danielmain danielmain commented Mar 18, 2022

This PR introduces CIP-0035 where the standard is defined of how websites or desktop applications can open and interact with the installed desktop wallet like Daedalus using a URL.

This is a replacement of the previously draft PR created on 16 Sep 2021 by @tomislavhoracek

@danielmain danielmain marked this pull request as ready for review March 18, 2022 21:29
@danielmain danielmain marked this pull request as draft March 19, 2022 06:29
@rphair
Copy link
Collaborator

rphair commented Mar 19, 2022

thanks for following the suggestion to move this into a new CIP 😎 ... also let me remind other editors & reviewers there is useful discussion about this proposal in the draft PR linked above: #130

@danielmain - is this already being used in work you're doing with the Daedalus group? If so the status could be changed to Active (if not, we can change it the future).

CIP-0035/README.md Outdated Show resolved Hide resolved
Copy link
Collaborator

@rphair rphair left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Github requires me to leave a comment here 🤓

@danielmain
Copy link
Contributor Author

thanks for following the suggestion to move this into a new CIP 😎 ... also let me remind other editors & reviewers there is useful discussion about this proposal in the draft PR linked above: #130

@danielmain - is this already being used in work you're doing with the Daedalus group? If so the status could be changed to Active (if not, we can change it the future).

Yes we are working on it
input-output-hk/daedalus#2606

Copy link
Collaborator

@rphair rphair left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your continued work on this 😎


# 💡 Motivation

DEX, Web-dApps and Desktop-dApps (e.g. games or desktop applications) should have the possibility to interact directly with desktop wallets. By defining a URI scheme and registering it in the operating system, it will allow opening Daedalus or any desktop wallet same as when you call or click a mailto:email@sample.com and your email client is opened.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changing this to mailto:email@sample.com (i.e, adding backticks around it) should prevent the email address from being formatted differently (as a clickable & invalid email address) in the formatted Markdown (as it appears now).

Title: Daedalus URI Scheme
Authors: Daniel Main <daniel.main@iohk.io>
Comments-URI:
- https://github.com/cardano-foundation/CIPs/pull/130
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great that you have the last PR discussion in there, but can you also add this one?
- https://github.com/cardano-foundation/CIPs/pull/234

```
<a href="web+cardano://Ae2tdPwUPEZ76BjmWDTS7poTekAvNqBjgfthF92pSLSDVpRVnLP7meaFhVd?unix-timestamp-timeout=1647896861">Buy/Send/Donate</a>
<a href="web+cardano-testnet://Ae2tdPwUPEZ76BjmWDTS7poTekAvNqBjgfthF92pSLSDVpRVnLP7meaFhVd?unix-timestamp-timeout=1647896861">Buy/Send/Donate (Testnet)</a>
<a href="web+cardano-flight://Ae2tdPwUPEZ76BjmWDTS7poTekAvNqBjgfthF92pSLSDVpRVnLP7meaFhVd?unix-timestamp-timeout=1647896861">Buy/Send/Donate (Mainnet and using Daedalus Flight)</a>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what's the point of web-cardano-flight? This seems very Daedalus-specific. Why not just use web+cardano and leave it up to the OS prompt to choose which app to launch (Daedalus or Daedalus Flight)?

Correct examples:
```
<a href="web+cardano://Ae2tdPwUPEZ76BjmWDTS7poTekAvNqBjgfthF92pSLSDVpRVnLP7meaFhVd?unix-timestamp-timeout=1647896861">Buy/Send/Donate</a>
<a href="web+cardano-testnet://Ae2tdPwUPEZ76BjmWDTS7poTekAvNqBjgfthF92pSLSDVpRVnLP7meaFhVd?unix-timestamp-timeout=1647896861">Buy/Send/Donate (Testnet)</a>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would strongly advise against doing web+cardano-testnet. Cardano, just like Ethereum, it sure to have many different networks in the future and we don't want to be stuck with a bunch of different URI schemes for every network. Instead, I suggest you include something similar to CIP34 inside the payload

Copy link
Contributor Author

@danielmain danielmain Mar 24, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would strongly advise against doing web+cardano-testnet. Cardano, just like Ethereum, it sure to have many different networks in the future and we don't want to be stuck with a bunch of different URI schemes for every network. Instead, I suggest you include something similar to CIP34 inside the payload

@SebastienGllmt : the network cannot be "selected" in Daedalus. For each Network exist a different Daedalus installation. This is how it is implemented, and I am afraid this will not be changed.

Coming back to the vscode example.

vscode:// => opens Visual Studio
vscode-insiders:// => opens Visual Studio Insiders

grafik

You can run this command (in case you are on macOs), and you will see how most of the desktop applications register their URIs: /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump URLSchemeBinding

So, Flight is for us, like the Insider version.
cc: @nikolaglumac

Copy link

@michalrus michalrus Mar 29, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cardano, just like Ethereum, it sure to have many different networks in the future and we don't want to be stuck with a bunch of different URI schemes for every network. Instead, I suggest you include something similar to CIP34 inside the payload

At least in Daedalus’ case, each network is handled by a different build.

If we are to define only a single protocol:, by which the OS differentiates which app to choose, we would have to either:

  • let the user choose, after clicking a link, in a system prompt, which Daedalus build to use to handle it, and
    • how easy it would be to mis-click is not for me to decide,
    • I think some OS-es don’t show the full list of possible apps, just a few recent ones?
  • or create a completely separate small app that opens an appropriate Daedalus build (if it is installed) based on protocol:THIS_PART which the OS is not concerned with – in effect re-implementing a great deal of what already is there in all 3 OS-es, and having to make it cross-platform, having to detect where each Daedalus is installed etc. etc. – a mess.

@@ -0,0 +1 @@
Moved to [CIP-0035/README.md](./README.md).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not needed for new CIPs.

Copy link
Member

@KtorZ KtorZ left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As currently written and framed, the proposal is too Daedalus-specific to pretend to be included as a CIP.

If the goal is to define a URI scheme for desktop wallets in general, then it ought to be framed as such for more clarity 👍 , only taking Daedalus as one of the possible example of implementation.

@KtorZ KtorZ changed the title [CIP-0035] Proposal for open Daedalus or desktop wallet via URL CIP-47? | Proposal for open Daedalus or desktop wallet via URL Apr 5, 2022
@KtorZ KtorZ changed the title CIP-47? | Proposal for open Daedalus or desktop wallet via URL CIP-0047? | Proposal for open Daedalus or desktop wallet via URL May 11, 2022
@KtorZ KtorZ added the State: Waiting for Author Proposal showing lack of documented progress by authors. label Aug 2, 2022
@KtorZ KtorZ closed this Nov 30, 2022
@KtorZ
Copy link
Member

KtorZ commented Nov 30, 2022

Closing for now, as it's been inactive for a while. Feel free to re-open if there's any update on this topic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
State: Waiting for Author Proposal showing lack of documented progress by authors.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants