What are the key milestones you need to achieve in order to complete your project successfully?
Milestone 1: M1 - Finalise all specifications
We will use the first milestone to finalise the specifications and provide small proof of concepts where necessary (see below). In particular, those areas whose specifications and technology choices will be refined are:
-
Atala Prism and its Agent Node: we will review how / where the node is hosted, and the final specs of the connecting APIs to the agent node (likely via an intermediary API layer)
-
Digital Identity wallet and Browser extension: we will review all constraints associated with the delivery of a browser extension for a "light Cardano wallet" which will mostly act as a Digital Identity wallet
-
App vs DApp: this part is the least clear so far, so it will require a bit more research into what sort of App (decentralised or not) we will provide. The requirement is that the Identity Wallet will receive Verifiable Credentials from an Authoritative entity. Our App (or DApp) is this entity having authority on issuance. As of now, no other project has yet delivered in production a decentralised App for managing Digital Identities, hence our need to refine carefully our technology choices and specifications. We are working closely with the Atala Prism team, as part of a tiny cohort or 3-4 teams, to deliver this capability.
-
Voting power: in a first instance, Verified Credentials will be issued to represent an individual's "voting power". This can take the form of aggregating ADA balance of several wallets, or in the case of more complex use cases, aggregating the balance of various coins over various wallets. A clear specification is required to issue such credentials and ensure there is no double counting (e.g. a user sending its ADA to another wallet and claiming double voting power).
-
Voting system Design and UI: In the first iteration of the project, we will likely let users vote solely on "Polls". Other categories of questions could be added later. A basic smart contract requirement and a simple UI will be designed during this stage.
<u>Milestone outputs</u>
- up to date GitHub repo
- prototypes validating tech choice where applicable
- detailed specifications of sub-systems where applicable
- video recording explaining tech choices
<u>Acceptance criteria</u>
- Proof of Concepts and Specs are delivered
- There is no major blocking point to deliver the full solution
<u>Evidence of milestone completion</u>
- GitHub is updated with all milestone deliveries
- Specs are delivered
- Video recording of all progress
Milestone 2: M2 - Digital Identity Wallet Browser Extension
This Milestone is about the delivery of Digital Identity Wallet in the form of a (Chrome/Brave) Browser Extension.
It includes those high level intermediate deliveries:
- Implement a Chrome/Brave compatible extension squeleton and connect it to Cardano JS APIs
- Pass phrase issuance for first time users
- Authentication into the App and security related code
- Managing User's profile and preferences
- Ability to show DID and valid Verifiable Credentials (VCs) issued to the user
- App settings, plug it on TestNet and MainNet
- Test scripts and docs
<u>Milestone outputs</u>
- up to date GitHub repo
- A working browser extension which can act as a Digital Identity Wallet
- The wallet can show DIDs and VCs
- Video recording of the working browser extension
<u>Acceptance criteria</u>
- A DID can be displayed, VCs can be displayed (note: issuance of DIDs and VCs is done in a later milestone)
- It works on Chrome / Brave
<u>Evidence of milestone completion</u>
- GitHub is updated with all milestone deliveries
- A user can create Digital Identity wallet, and request issuance of a DID.
- Video recording of all progress
Milestone 3: M3 - Authority Verifiable Credential Issuance App
This Milestone is about the delivery of an App (or DApp) which will act as the Trusted Issuer (and verifier) of Verifiable Credentials issued to users for the purpose of voting.
It includes those high level intermediate deliveries:
- Implement specs from M1
- Connect the App to various wallets (at least on Cardano, but possibly also cross-chain, pending on M1 research into it)
- Verifiable Credential issuance
- Ensure integrity of votes (whilst issuing VCs)
- Proof verification of issued VCs with Built-In Anonymity
- SDK, Test scripts and docs
<u>Milestone outputs</u>
- up to date GitHub repo
- A working App (or DApp) which can plug onto an Agent Node and issue DIDs, issue VCs, as well as verify VCs
- The issued VCs maintain the integrity of the voting power
- The issued VCs do not contain Personal Identifiable Information
- Video recording of the App (or DApp)
<u>Acceptance criteria</u>
- A DID can be issued, a VC can be issued, a VC can be verified
- No Personal Identifiable Information can be accessed by any third party
<u>Evidence of milestone completion</u>
- GitHub is updated with all milestone deliveries
- The App (or DApp) can create a DID, a VC, and verify a VC.
- Video recording of all progress
Milestone 4: M4 - Voting app
This Milestone is about delivering a simple decentralised Voting WebApp (including all smart contracts).
It includes those final deliveries:
- Smart contracts for Ballot Creation, Voter Registration, Casting Votes, Tallying Votes.
- On-chain storage of poll metadata
- A working WebApp UI for creating Polls / votes (SDK + UI)
- Delivery of a working WebApp UI for voting (SDK + UI)
- Final integrations, all SDKs, Test scripts and docs
<u>Milestone outputs</u>
- up to date GitHub repo
- A working end-to-end solution, allowing someone to create voting questions, and users to cast their vote via a decentralised system where their private information is never revealed
- Video recording of the poll creator
- Video recording of an end-user voting anonymously
<u>Acceptance criteria</u>
- A poll can be created, with minimal criteria (start date, end date, question, possible answers)
- A user can vote on the poll anonymously
- The pool creator can check results (real time or at end date)
<u>Evidence of milestone completion</u>
- GitHub is updated with all milestone deliveries
- Video recording of all progress
Milestone 5: M5 - Finalising and Connecting all sub-systems
This Milestone is about connecting all the sub-systems delivered in prior milestones (or prior projects) and connecting them together to reach a seamless integration for being Prod ready.
It includes those final deliveries:
- Delivery of a prod-ready Atala Prism Agent Node
- Delivery of an Identity SDK and Authority App/Dapp connecting onto the Agent Node
- Delivery of the Digital Identity Wallet Browser extension, connecting onto the Authority App
- Connecting voting app to identity
- Final integrations, Prod/Test Envs, all SDKs, Test scripts and docs
<u>Milestone outputs</u>
- up to date GitHub repo
- A working end-to-end solution (on TestNet), allowing someone to create voting questions, and users to cast their vote via a decentralised system where their private information is never revealed
<u>Acceptance criteria</u>
- The Voting App is available on TestNet
<u>Evidence of milestone completion</u>
- GitHub is updated with all milestone deliveries
- Video recording of all progress
Final Milestone: Final - Close-Out report
This is the final milestone, including a close-out report, community engagement, marketing, and demo video recordings.
<u>Milestone outputs</u>
- up to date GitHub repo
- A working end-to-end solution
- some published articles about each component and the total solution
- Participation into Catalyst and/or Cardano events to showcase the solution
- Video proof
<u>Acceptance criteria</u>
- A useable solution (within the perimeter of agreed specs)
<u>Evidence of milestone completion</u>
- GitHub is updated with all milestone deliveries
- Video recording of an end-to-end demo