-
Notifications
You must be signed in to change notification settings - Fork 321
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-0013: Current state of integration and further advancements #836
Comments
re: future plans for wallets... cc @Crypto2099 @MadOrkestra we had a brief review of some of these topics when I last rewrote CIP-0013 to have more flexibility for future protocols to be added. Additional I can't personally provide insight about what wallet developers might or should be doing, but I will definitely follow this thread to do whatever I can to make CIP-0013 implementations easier than any proprietary alternatives. 🚫 Payment Scheme for Native AssetsI would expect that including native assets besides Ada in a payment query string would first be discussed similarly to this thread: #86, with some comments & concurrent PRs and issues suggesting:
So I expect a new payment URI should support payment links like (feel free to substitute asset fingerprints for familiar token names here, and I expect the entire URI query would be case-insensitive):
... or, if the query URI values are ruled to be a problem for backward compatibility of already supported payment links:
I would be happy to work these into CIP-0013 as soon as enough discussion can validate the syntax & boundary cases here:
|
Maybe a general comment before we dive into details: Looking at the Path to Active for this CIP (https://cips.cardano.org/cip/CIP-13), with BeginWallet implementing payments, IMO all we really need to put this CIP live as is would be implementation of the Stake Pool URIs by one or more wallets. With Yoroi, Begin and Vespr already having implemented CIP99 the last acceptance criteria (one or more wallets supporting additional URI protocols) seems to be already fulfilled? So in the spirit of getting things done, this might also be a viable option to move this along and improve on it later. Just putting this out there for any wallet dev reading this. |
@MadOrkestra we have an There's a also a Cardano wallet developer community active at the corresponding CIP Discord here: https://discord.gg/J8sGdCuKhs |
I have to read up on CIP-0026 for this, you might already know: Couldn't this be at least mitigated to some extend if wallets would validate short asset names against the Cardano token registry? Aren't ticker symbols in there individual without duplicates? Of cause this would only be half a solution as not all assets are in the registry. |
@MadOrkestra this is why I think it would be safe enough to use the short asset names... but, not being a wallet implementor or being responsible for wallets misinterpreting payment links in certain boundary cases, I'm not qualified to say how safe (or unsafe). I think @Crypto2099 would have hashed a lot of this out with CIP-0099 so I'm looking forward to seeing what he has to say about this & about the general subject. |
On the second advancement idea: Adding "metadata" for payment links, I think it could really be as easy as adding a "&msg=whatever" to the URI scheme which gets put into the already available msg field in the tx metadata? Implementation would need the usual splitting of that URL encoded string if it exceeds 64 characters, but that standard is already defined. Only limitation would again be the URL-length limit, which is up to the creator of the URL to take care of. For the use case of matching transactions on the backend of a payment system, this would already be sufficient. All you would do is throw your unique identifier in there. Probably best to keep this simple at this point and if payment systems arise with a more unique metadata requirement, this could/should be an own CIP? |
As I was saying above (and another reason to get lots more people brainstorming this), the devil is in the details: what if someone has a Cardano native token called I'd suggested in one of our latter CIP-0013 PRs that we should have a So developing a |
Hey guys, great convo so far from @rphair and @MadOrkestra! I'm excited about this and having talked to both contributors so far, eager to do my part where I can to help advance the overall ecosystem adoption of We have had a number of other proposals to utilize these URIs such as:
In light of this, I'm happy to also add to my workload a new CIP to iterate above CIP-13 and implement a dedicated "payment" URI scheme where we can work through the metadata, native asset, and potentially the DNS resolution issues. I believe this is a problem that we can solve (within some certain limits). |
True. Probably using a prefix for asset names is the way to go to make this somewhat future-proof for further parameters to be added at a later date and not conflict with asset names, but sure, we need some wallet developers in this discussion first.
FWIW: I made the rounds in all Discords and talked to all the wallets listed above (plus Tokeopay, who weren't aware of this CIP at all, so they too have already created their own solution... they were open to implementing however) Not sure what else can be done. Maybe the way forward will indeed be to push down the current Path to Active, as mentioned, BeginWallet will implement and rollout full CIP13 support. And then get ppl to use it, so it gets the publicity CIP-99 got when Hosky started using it. |
The progress has begun by first defining a "CPS" dedicated to |
Thanks @Crypto2099 for pushing onwards, I think this is the way to go and we'll hopefully be able to put CIP13 live once BeginWallet (and hopefully others, still trying to push Yoroi) rolls out full support. Just leaving this here, so I don't forget for the new Payment Authority CIP: As we are doing this right now, from a UX point of view it'd be great to have a callback URL the wallet hits/visits after the transaction is complete or denied. This would enable further actions on the payment frontend, because other than waiting for the transaction to arrive, there is no way to know if a user actually did scan the QR code / clicked the link and took further action. This has multiple implications again, URL length just being one of them, but I have some ideas on this. |
As additional "motivation" — for both this issue participation & related CIPs — it would be helpful to surpass Solana in this aspect: given their facility is completely centralised & ours would be generally decentralised. 🧐 [external news article from today] https://cointelegraph.com/news/new-solana-feature-allows-crypto-transactions-any-website |
Updated the overview, beginWallet has successfully rolled out payment link support and deeplinks in the last release. Still waiting on wallets to implement the staking scheme. |
With mobile wallets showing great progress over the past year, I'd like to bring some attention to CIP-0013 (Cardano URI Scheme), which makes quick payments by scanning a QR Code possible - a feature greatly needed to get a lot of use cases off the ground and improve the overall user experience on Cardano.
CIP-0013 was first proposed in 2020 but doesn't seem to have moved along since. There seems to be great support for CIP-0099 (Proof of Onboarding), which already is an addition to the non-active CIP-0013. Flint Wallet seems to have integrated their own deeplink solution already, so before other wallets go down this individual path, maybe lets have a discussion about what is missing and how to proceed, so we can put this CIP into action. I had great success working with BeginWallet on this for the past week, they will role out payment link integration shortly.
Current state of Integration in mobile wallets
This is from what I gathered from conversations and testing, feel free to add other wallets or correct my findings. This is not meant to put anyone on the spot, just to give a general overview of where we are in terms of integration.
Yoroi
✅ Payment Scheme
🚫 Staking Scheme
🚫 Deeplinks
✅ CIP99
BeginWallet
✅ Payment Scheme
✅ Deeplinks
🚫 Staking Scheme (not integrated yet, but no objections to the CIP)
✅ CIP99
Vespr
🚫 Payment Scheme (objections to the CIP / improvements needed before implementing)
🚫 Staking Scheme (objections to the CIP / improvements needed before implementing)
🚫 Deeplinks (objections to the CIP / improvements needed before implementing)
✅ CIP99
Flint
🚫 Payment Scheme
🚫 Staking Scheme
🚫 Deeplinks
🚫 CIP99
Gero
🚫 Payment Scheme
🚫 Staking Scheme
🚫 Deeplinks
🚫 CIP99
Advancements
From my conversations with multiple devs and projects, there seems to be a need for at least two improvements:
1. Asset support for payment links
Right now, there is no way to include Cardano native assets in a transaction, just ADA. Especially with stable coins being a thing now, this seems to need integrating. Or: Deciding to put this CIP live as is and have improvements in own CIPs like it was done with CIP99, also a way to go.
2. Metadata support for payment links
To match transactions on the backend of a payment system, there is the need to include some kind of metadata in payment links. This could already be achieved by adding a recognisable amount of Lovelace to the payable amount, but this is of cause more of a workaround than a solution. So it stands to reason to add functionality to include metadata in payment links
I will invite devs and wallets to join this discussion. Please spread the word, so we can hopefully work out the missing pieces and finally put this CIP into action.
The text was updated successfully, but these errors were encountered: