Please describe your proposed solution.
Hyperledger Aires is a mature library that provides a shared, reusable, interoperable tool kit designed for initiatives and solutions focused on creating, transmitting and storing verifiable digital credentials. It is well adopted by numerous Self Sovereign Identity projects in permissioned and permissionless blockchains.
RootsID regularly interacts with the Hyperledger Aries developers at SSI meetings at Trust over IP, Decentralized Identity Foundation, and Hyperledger Linux Foundation. Together we are developing an interoperable open source SSI ecosystem.
On Fund 7 we delivered our project Hyperledger-Prism Interoperability (Github, final report video) that allows Aries Cloud Agent (ACA-PY) to work with ATALA Prism DIDs, sharing and issuing Verifiable Credentials. ACA-PY is the Aries agent in Python that was widely adopted worldwide and it’s intended to be used in backend or cloud systems.
In this project we are focusing on integrating Aries Framework JavaScript (Aries JS) into RootsWallet, the first and only Open Source Mobile Identity Wallet for ATALA Prism. Aires JS is a framework for building SSI Agents that aims to be compliant and interoperable with the standards defined in the Aries RFCs. Since it is written in TypeScript, integration with our mobile identity wallet code will be straightforward.
At the end of the project RootsId will have delivered a backend and a mobile agent based on Hyperledger Aries integrated with ATALA Prism, allowing companies to build complete SSI systems that are interoperable with other projects based on Aries, not necessarily on Cardano but on other blockchains.
Technically we'll use the following features from Aries JS:
- DIDComm v1 communication (RootsId is currently based on the newer DIDComm v2)
- Support for Indy Anoncreds (issuance and verification)
- Support for W3C JSON-LD credentials (issuance and verification)
- Several Aries protocols such as:
- Out of Band v1
- Issue Credential
- DID Exchange
- Present Proof
- Connection
- Mediator Coordination
- Basic Message
RootsWallet code will be delivered as Open Source in our public GitHub repository.
Please describe how your proposed solution will address the Challenge that you have submitted it in.
Integrating the Aries open source identity ecosystem with the Cardano open source identity ecosystem is the highest priority for interoperability with the majority of the SSI industry. Interoperability means that Self Sovereign Identity solutions based on other blockchains can communicate with solutions based on Cardano and share Verifiable Credentials and Presentations in order to be validated. That will enable endless opportunities to build cross-chain projects and joint efforts to move or extend other projects into Cardano.
RootsId already delivered an integration of Aries Cloud Agent in Python with Cardano. That project allows backend agents to use Aries features. Now, this project will leverage RootsWallet, our Open Source Identity Wallet, to include AJS and be able to easily interface with the Aries ecosystem.
RootsId is a member of Hyperledger and closely participates in the Aries Working Group sharing the same interoperability goal. We truly believe that this kind of collaboration generates opportunities to build multi chain systems.
What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?
The main challenge is the technical integration into our code.The Aries Framework Javascript project is rapidly modularizing but many dependencies are still tied to the legacy Indy project. There is a risk of encountering difficulties as we isolate functionalities from Aries to be used in RootsWallet code.
Our mitigation plan began months ago. We are participating in the weekly Aries Javascript Meeting every Thursday to understand the nuances of the implementation and having direct contact with the implementations. We are confident that when difficulties arise, we’ll easily find knowledgeable people willing to help and collaborate.