-
Notifications
You must be signed in to change notification settings - Fork 319
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-0099? | Proof of Onboarding #546
Conversation
Link to rendered version: https://github.com/Crypto2099/CIPs/tree/pooprotocol/CIP-0099/README.md |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1 - A note about the title:
- It's a memorable acronym but people landing on this PR should more importantly know immediately what it's about, with as little distraction as possible.
- The term "protocol" is optional considering that other CIPs for protocols don't have it in the title... and not necessary here because "onboarding" implies a process (although the extra word does produce another catchy acronym).
In any case, if this new title "sticks" (so to speak) we can update the document to reflect it at some point.
2 - More urgently we should first consider decoupling this from CIP-0013 as much as possible, based on prior agreement. I would be open to retitling CIP-0013 as "URIs for payment and stake pool links" to restrict it to those two URI protocols alone. The history:
The decision to produce separate CIPs for further extensions to the Cardano URI scheme has mainly taken place on the Forum: https://forum.cardano.org/t/cip-generalized-cardano-urls/57464
... and a little bit on GitHub in response to an aborted request to include some URI protocols for an unpopular app-specific URI scheme: #130 #234
... but we've never formalised the decision to document additional URI protocols as new CIPs because there was nothing to merge yet. We knew that day was coming and I think your practical requirement will force us to confirm this.
If the consensus is to do that, some time after 18 July (after I have another deadline) I can work on a CIP-0013 update or deprecation depending upon how you, reviewers & editors think the URI Scheme should be maintained going forward... given that this is the first useful extension to it that's been proposed since we merged my own "stake pool link" updates. Then you'd be free to include the entire "onboarding" spec in a single new CIP document.
I do feel strongly that bulking up the ancient CIP-0013 with the somewhat heavyweight "onboarding" protocol is going to cause some confusion as well as discourage implementors from supporting the 2 URI protocols already documented there.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
also somehow we have to remove the illegal comment entries from the JSON; otherwise they'll be highlighted as errors on all the GitHub syntax checkers:
Do you feel that the best solution in this case then is to bring all of the CIP-13 amendments into the scope of this single README file and so the URI itself is also part of this CIP? I think this makes a lot of sense and allows the versioning syntax of the URI to also be updated alongside this document. |
@Crypto2099 the way we were leaning from the Forum discussion + the last CIP meeting when this issue came up was to:
Therefore this PR would not modify CIP-13... although someone (me I think) would rewrite CIP-13 accordingly ASAP in a separate PR as we were thinking of doing 2 years ago. The only difference between the plan above and what we talked about back then... with CIP-68 happening in between with its included definitions for certain initially defined asset labels... has made me think that this organisation would also suit CIP-13... and as we've seen in #504 I would like to ensure new protocol definitions, including this PR, don't require modifying CIP-13 each time. 😬 |
@rphair okay yeah, so I think I was a bit vague, that was also my understanding from the links that you mentioned which I did review. So, I will move the modifications that are currently in the CIP-13 README into the POO (CIP-????) README and they will just live there and be modified and iterated along w/ the Proof of Onboarding CIP in the future. This makes sense and actually makes it much easier to follow along with progress and changes IMO. |
@Crypto2099 sounds fine & I've scheduled to work on that revision of CIP13 soon after I'm done with my other deadline on the 18th. There's a CIP editors' meeting scheduled for that day so I'll plan to talk there about the changes proposed to CIP13 itself when we introduce your new proposal from the agenda. 😎 |
@Crypto2099 what do you think about including a few |
This should actually already be handled by the various 200 responses already defined within the protocol as it stands. So we move from 200 (initial receipt and acknowledgement) to 201 (pending delivery and queue order assuming same wallet + code) to 202 once completed along with the txn hash. Whether or not the wallet implements a polling would be up to their individual implementation. |
…arding README.md and update name and other clarifications per feedback. Also fixed in-file JSON errors that were causing problems.
I've started compiling some companion tools and helper functions which should help others to integrate Proof of Onboarding into their project and/or wallet here: https://github.com/Crypto2099/POO. Of maybe particular interest would be the CIP-13 Parser Lib found here: https://github.com/Crypto2099/POO/tree/main/packages/lib/cardano-poo-ts (@rphair @KtorZ)... I think we need to work on the spec for staking and clean up the spec for payment addresses r.e. CIP-13 but I realize that's part of a larger conversation specific to CIP-13 itself :) |
Thanks for giving me time to finish a Catalyst posting and rest a bit... I'll publish a PR draft for that by the end of the week. |
…tation actions taken in July 2023.
… the tokens array with hex-encoded asset names and not ASCII asset names.
…p it simple for the sake of early adoption.
We have updated the documentation to remove reference (for the time being) to a Version 2 of the protocol as it is not currently needed or beneficial and could, in fact, hinder adoption. Examples and documentation have been updated to reflect this. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Readers who start at the OP above should know this proposal doesn't depend upon QR or any other media to convey the protocol URIs: this protocol doesn't necessarily integrate or depend upon any wallet choice (contrary to how it might sound from the OP).
High level description of my individual edits & comments:
1 - Identifying a version number explicitly is still awaiting agreement on how to specify this, as in what we were discussing in #520
2 - CIP titles are instantiated into parsed documents from the preamble titles as H1 everywhere, so the section headers were demoted to H2 and then subheadings further levels down from there (apologies for the mess of commits; if I knew how many headers there were going to be, I would have done this in a single initial commit pushed into your branch 🤪).
3 - Some places where the whole Cardano URI Scheme is reproduced here can be simplified, since in #559 the grammar has "hooks" in it (the authority
keyword and the query
following & defined by that keyword) that can be referred to simply by CIPs which define a new branch of the URI scheme.
4 - Some narrative in Path to Active needs to be put in standard form... and the parts which confirm your design choices would work great in the Rationale.
The protocol mechanism itself (HTTP response mechanism) seems remarkably well thought out and I can't conceive at this time anything that would make it not work. Really well done to your team on this concept & documentation. 🤩
@Crypto2099 I trust you will be happy with the cognate CIP-0099. I have scribbled on your PR enough that I will let you do the honours in changing your own number. 😅 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @Crypto2099,
A well defined proposal! see my small comments throughout.
Co-authored-by: Ryan Williams <[email protected]>
Co-authored-by: Ryan Williams <[email protected]>
* Language edits, additions, and modifications to bring the document in line with community and editor feedback. * Addition of explicit versioning and modification criteria
@Ryun1 @rphair I believe all changes (including moving to its new forever home in the CIP-0099 directory) requested or inquired about have been addressed and made in this latest version. Respectfully requesting formal review and potentially submission for Final Review during the next CIP Editors meeting if possible. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, it seems like everything we have been looking for (all the particulars I was expecting & was double checking from @Ryun1) is there now, with some more corrections besides.
I understand that this CIP won't be "versioned" as such but will require a new CIP to make functional changes. In general I would hope our CIPs would be more flexible than that, but also see in this case how it would be horrendous to keep multiple behavioural descriptions for all these interdependent pieces in a single document.
The "paper wallet" reference definitely works much better where you have it now in the Rationale. In summary I think this is ready for a Review at the next meeting in the hope of promoting it soon after.
CIP-0099/README.md
Outdated
### Implementation Plan | ||
|
||
In order to encourage adoption of this standard the authors commit to execute a functional minimum viable | ||
proof of concept demonstration in partnership between Adam Dean, HOSKY Token, and VESPR wallet. This real-world | ||
implementation should give us important insight on whether the system requires additional modifications or changes. | ||
|
||
From there we will do our best to engage with other teams and projects in the ecosystem to encourage and support | ||
adoption of this standard on a larger scale. | ||
|
||
## Implementation Actions | ||
|
||
1. [X] VESPR Mobile Wallet supports the Proof of Onboarding Protocol and is freely available for the use of any and all projects. | ||
2. [X] HOSKY Project has released an open source server-side implementation software that may be used as a proof of concept for any interested projects. | ||
3. [X] Multiple projects at multiple, global events have successfully deployed Proof of Onboarding. | ||
4. [ ] Onboard additional wallet providers, server/service providers, and redemption methods. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For this to fit in with other CIPs, even those with a similar amount of coordination between separate entities, this section should be stripped of its subjective statements and formatted as a single list of achievements. I'm not just saying this without consideration of the subject matter... and likewise the community would trust you & your partners not to proceed through the Implementation plan without the "insight" that you would have from the previous stages.
Whatever is in the background paragraphs preceding the Implementation checklist also reduces to checklist items when you remove the subjective stuff. Once the list of actors & what they are doing is all in one list — ordered as chronologically as you are able, in series-parallel combination if necessary — it will be easier for the community to follow objectively.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the suggestion to combine both "implementation plan" along with "implementation actions" into a single checkbox list?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, but what I wrote above wasn't simply saying that. I think the items that mightn't fit into a checkbox list are implicit and/or can be assumed from good faith in our community over what the implementors will be doing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Roger that, I will revise and get a new PR before Tuesday's meeting :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good as well for Active
status; green lights across the Path to Active
board.
@Crypto2099 I have a few suggestions for extending this CIP: 1. Add an optional field
|
@Crypto2099 Thoughts on my comment above? |
* CIP-????: POO Protocol Initial Commit/PR * Update with relevant links to the PR * Fix YAML format * Fix YAML format * Rollback changes to the CIP-13 README.md and add to the Proof of Onboarding README.md and update name and other clarifications per feedback. Also fixed in-file JSON errors that were causing problems. * Minor update to document progress on acceptance criteria and implementation actions taken in July 2023. * Update examples to properly reflect that the API server should return the tokens array with hex-encoded asset names and not ASCII asset names. * Remove Version 2 for now as it is unnecessary at this time, let's keep it simple for the sake of early adoption. * Fix minor typo in an example * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level * fix header level & add explicit section title * fix header level * fix header level * fix header level * fix header level * Update CIP-XXXX/README.md * fixed glitch from edit during CIP meeting * Update CIP-XXXX/README.md Co-authored-by: Ryan Williams <[email protected]> * Update CIP-XXXX/README.md Co-authored-by: Ryan Williams <[email protected]> * Changes to CIP-99: * Language edits, additions, and modifications to bring the document in line with community and editor feedback. * Addition of explicit versioning and modification criteria * Updates to the implementation plan and acceptance criteria for CIP-99 * Update CIP-99 to active status --------- Co-authored-by: Robert Phair <[email protected]> Co-authored-by: Ryan Williams <[email protected]>
The POO (Proof of Onboarding) Protocol defines a new standard for Cardano CIP-13 URI formats as well as a new standard for a communication protocol and API between wallets and project servers to provide a reliable and standardized method to "airdrop" tokens onto users.
The primary use case scenario for this protocol is for projects attending live events where the users in question may not even have a crypto wallet yet, let alone any crypto coins in their wallet. How do we still onboard (and capture reliable metrics) these users to the ecosystem?
In partnership with $HOSKY Token, VEGAS Stake Pool, and VESPR wallet we have developed this specification to support the following user journey: