over budget

WAL-CLI Presentation Exchange

$20,000.00 Requested
Ideascale logo View on ideascale
Community Review Results (1 reviewers)
Addresses Challenge
Feasibility
Auditability
Solution

Expand WAL-CLI implementation to include the protocols required for credential presentation and verification between WAL-CLI and RootsWallet

Problem:

The Presentation Exchange protocol required to coordinate interaction between RootsWallet and WAL-CLI instances needs to be implemented.

Yes Votes:
₳ 53,742,929
No Votes:
₳ 3,563,408
Votes Cast:
213

  • download
  • download
  • download

[IMPACT]

On this proposal you will constantly see a relation between RootsWallet and WAL-CLI. This is because to build a DID ecosystem different types of wallets are necessary. At one side we need the holder wallet; It takes the form of a mobile application that individuals will use to receive, store and present credentials. On the other side we require the organization wallet; It’s a more intricate application used by institutions and organization to manage the issuance, revocation, and verification of holder’s credentials.

RootsID team is working on RootsWallet to cover the holder wallet and WAL-CLI to fill the organizational wallet gap. The first release of WAL-CLI was funded on the last campaign and is available here.

The presentation and exchange protocols refer to the messages interchanged between wallets to perform an action, such as, request the issuance of a credential or request the presentation of a credential.

This proposal covers the development of the functionality required to perform proof presentation and credential issuance between a WAL-CLI instance and RootsWallet. We will implement the latest specifications and protocols from DIF and Aries Interoperability Profiles, specifically:

The produced code will be open sourced with Apache 2.0 licensing and uploaded to our public repository. Documentation will be provided with build and run guidelines and tutorials.

To foster a decentralized identity ecosystem there are several technical components that must exist for solutions to be realizable. IOG has done a great job providing Atala PRISM sdk and PRISM Nodes, but that is not enough, there are gaps that need to be covered before a DID ecosystem can be built. The purpose of WAL-CLI is to work in conjunction with RootsWallet and complete the missing parts that we need to get the ecosystem going. The way we address the challenge is by providing open source technology required to start building.

We have identified and analyzed two potential risks:

  1. Protocol standardization: We are implementing protocols that should be standard and well adopted. However, as we are in the early stage of the industry, some of the protocols are in the process of being standardized and are subject to change, or even be replaced. In WAL-CLI scenario our concern is to be interoperable with RootsWallet so to mitigate the risk this project will be closely aligned with RootsWallet development.
  2. Time allocation: the other challenge we may face is the ability to allocate enough time to deliver the project in time. To mitigate the risk we have enlisted another community member to work on this proposal.

[FEASIBILITY]

The project will have a duration of 12 weeks and is organized in phases as presented below :

Research (week 1-2): Tasks needed for stablishing the technology stack and draft the architecture. Some of the research items are:

  • Study and learn from Aca-py present-proof implementation
  • Study and learn from Aca-py issue-credential implementation
  • Review DIF-WACI-PEX protocol
  • Review DIF-Presentation-Exchange protocol

Design (week 2-4): Refinement of the architecture definition and data modeling. The outcome of this phase is a defined architecture and design. Tasks include:

  • Data model for state machine control for verifier role
  • Data model for state machine control for prover role
  • Functions for present-proof messages:
  • request-presentation
  • propose-presentation
  • ack-presentation
  • presentation
  • problem-report
  • Functions for issue-credential messages:
  • propose-credential
  • offer-credential
  • request-credential
  • issue-credential
  • ack
  • problem-report
  • Protocol error handling and retry

Implementation (week 4-9): Actual coding of all the elements defined above.

Testing (week 9-11):

  • Create unit tests for the main functions
  • Integration testing between WAL Instances
  • Integration testing between WAL Instance and RootsWallet

Documentation (week 11-12):

  • Setup instructions
  • Design and architecture diagrams
  • Tutorial

Budget is segmented according to the phases described previously at a ratio of $60/hr.

  • Research: 40hr = $2400
  • Design: 60hr = $3600
  • Implementation: 150hr = $9000
  • Testing : 50hr = $3000
  • Documentation: 30hr = $1800

Total: 330hr x $60 = $19800

The team working on this project is composed by Esteban García and Rogelio Blanco**.** Esteban has been involved in the Cardano Decentralized Identity community from the beginning of Fund 7 and participated in the first cohort of the Atala Prism Pioneer Program. As a result of the later participation, he joined efforts with other cohort members and founded RootsId with the goal of providing useful building blocks for the Cardano DID Community. Rogelio is new to the space but his skills will surely cause a positive impact within the community.

Additional references of the team:

<u>Esteban García:</u> <https://www.linkedin.com/in/esteban-garcia-cr/>

Esteban has over 15 years of experience as technical consultant for corporate customers, with experience on several roles such as Developer, Solution Architect, Data engineer and QA Engineer.

He has a bachelor's degree on Computer Science, Associate degree on Data Science, FoB Certified by Emurgo Academy, Certified Profesional in Developing Blockchain-Based Identity Applications by The Linux Foundation. He’s actively involved in the DID Cardano community where he:

<https://www.youtube.com/watch?v=Q0yJHrxO7cI><u>Rogelio Blanco:</u> <https://www.linkedin.com/in/rogelio-blanco-rojas/>

An enthusiast when it comes to teamwork, proactive, and love willing with new technologies and challenge projects. Experience communicating with native English speakers, start projects from scratch, gathering requirements, estimate and leading projects and highly adaptable to both business and technology changes.

Ability to architect scalable solutions involving front-end, back-end, and connected devices (IoT). Propose and help to create DevOps pipelines based on the project-specific needs.

Experience working and architecting cloud solutions using AWS (microservices, IoT, and serverless).

Strong experience with Object-Oriented Programming, Web development based on Java ecosystem; some experience with other technology stacks like C#, PHP, Ruby, NodeJs and Python.

[AUDITABILITY]

The development will be managed in a public Github repository <https://github.com/roots-id/wal-cli> so the community will be able to audit and validate the work. Also, the project progress will be tracked using Github projects <https://github.com/roots-id/wal-cli/projects?type=beta> and a weekly report with progress announcements will be published here <https://github.com/roots-id/wal-cli/discussions/categories/announcements>

The success of this project will be determined by delivering a complete, tested and documented open source solution that covers the functionality presented on this proposal.

The proposal is a continuation of WAL-CLI <https://cardano.ideascale.com/c/idea/381281> and also depends on WAL-CLI Communication (<https://cardano.ideascale.com/c/idea/397184>).

In short, WAL-CLI Communication will provide DIDPeer/DIDComm capabilities to WAL-CLI and this proposal, WAL-CLI Presentation Exchange, builds the presentation and exchange protocols on top of the communication channel.

Community Reviews (1)

Comments

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00