Please describe your proposed solution.
The problem
The interest in Self-Sovereign Identity (SSI) keeps growing. And it's no wonder: it offers a solution to the ever-growing problems surrounding trust on the Internet, digital identity, and the worrying trends towards centralization. With DIDs (Decentralized Identifiers) and VC (Verifiable Credentials), we finally got a way to govern our own digital identities. IOG has launched PRISM, a very promising technological implementation of the concept of SSI. While IOG is developing products internally to roll out the technology in cooperation with the Ministry of Education in Ethiopia, other companies like DISH or WorldMobile are building their own solutions. However, these are only proprietary products for their own specific markets. Outside these business deals, it is primarily thanks to Project Catalyst that so many projects based on PRISM have already been funded and are all developing new and exciting solutions. In short: Things are moving forward!
However, what is still missing and preventing some projects from pressing on is a browser wallet. With a browser wallet, scenarios like logging in with a DID, or signing credentials on a web page would finally be possible. These are all essential building blocks to enable PRISM to become mainstream. And the demand is substantial!
Okay, but aren't there already other wallets?
First, we have to distinguish between crypto-wallets and identity-wallets. Although they both communicate with the Cardano blockchain, the technology behind them is fundamentally different. Crypto light wallets such as Yoroi, Etnerl, Metamask etc. are the part of the wallet where we store our money. Identity wallets, on the other hand, hold our ID, our education degree, our driver's license, and much more. One day, there will be a type of wallet, like our physical wallet, that combines both, but it will be quite some time until that is happening.
And what about other identity wallets?
In the Cardano ecosystem, there is currently RootsWallet (also a Catalyst project), a wallet for Android which is getting built with great success and energy. Primary focus of this wallet is communication with other wallets, and using identity wallets in the real world. Blocktrust identity wallet, on the other hand, focuses on interaction with websites. Think Metamask for Identity! For us, it's first and foremost about finally providing the ecosystem with a working identity wallet, which is able to interact with websites. And these don't even have to be just the Cardano ecosystem! Additionally, it is necessary to understand that we are working with a technology with is standardized in public (W3C, Decentralized Identity Foundation, …). There is no vendor lock-in here. Moving your identity from blocktrust identity wallet to RootsWallet? Not a problem.
There are currently other mobile wallets like Proofspace (also a great approach), as well as various concepts and proposals to move the wallet issue forward. IOG's light wallet called Lace introduced at Consensus is also supposed to be able to manage digital identities one day, but this is an addition which will come somewhat after the initial release (which itself is still unknown). As it currently stands, there's a lack of solutions for the pressing need of wallets which are able to integrate into websites.
Why did it take to so long to build a browser-wallet then?
Although the core of the PRISM technology is almost two years old, there has not been a way to build a light wallet. This is due to the fact that the PRISM SDK (written in Kotlin) is not yet public and the JavaScript SDK, which is needed to build browser wallets, theoretically exists but also has no release date yet. Almost all PRISM projects are waiting in one way or another for the release of these SDKs. We, at blocktrust, have gone the long way and simply written our own SDK, which allows us to develop and implement new ideas much more rapidly. As a result, we are also the first to implement a light wallet — simply because we don't have to wait. And the best: IOG is exited to see us move forward (I, as the main proposer, am in contact with most of the Atala PRISM staff).
What will you get?
You will get the blocktrust identity wallet as browser-extension (Chrome, Edge, Firefox, Safari) in a very short timeframe to finally be able to continue building and integrate your applications with a browser-wallet.
The wallet will have the following features:
- It allows you to create and manage multiple DIDs (local, testnet and mainnet).
- It makes it possible to issue, receive, share and store Verifiable Credentials.
- Furthermore, it will allow you to connect to and interact with PRISM-enabled websites
- And it will enable you to create backups, restore from backups and import contents of other wallets into the identity wallet.
Additionally, we will provide documentation and a toolkit to help developers integrate the wallet with their web app to allow login, bidirectional sharing of credentials, and to process signature requests. We believe that having a good documentation geared towards developers and code example and demos is as important as the wallet itself.
But it's not just about developers. As soon as the first PRISM-enabled websites take advantage of the integrations, a new realm of possibilities and use-cases will suddenly emerge for everyone to enjoy.
The key to driving the adoption of Atala PRISM, in our opinion, is primarily the ability to integrate PRISM with a wide range of web apps. These will initially be apps from the PRISM ecosystem, but there is no reason to stay only in the crypto space, SSI can be used everywhere.
Please describe how your proposed solution will address the Challenge that you have submitted it in.
This proposal could have also been submitted in the "Developer Ecosystem" challenge, but the wallet is an application for everyone, not just developers.
What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?
Technical risks
Since a working demo already exists, there are no technical risks as far as the actual product is concerned. There should not be any significant delays here.
Delivery risks
After the essential development is completed, the browser extension will be made available for public download (phase 2). This allows developers to use the wallet straight away. In order for the wallet to be used by the general user without technical knowledge, it must be offered in the Chrome Web Store and the Firefox Add-ons Marketplace, among other places. For this purpose, the wallet has to go through a review process. The certification for the Chrome Web Store is particularly time-consuming and tiresome. In addition, there are problems with the new format for WebExtension Manifest v3 (regarding WebAssembly browser-extentions). Although a time buffer has been included, there may be delays in delivery for individual browsers that are beyond our control.
Additional delays may result from the fact that IOG has not yet published its PRISM SDK. Although we are technologically not dependent on it, it is still unclear to what extent any kind of software that directly or indirectly uses PRISM can be made public before any kind of official SDK is released. This affects not only us, but any PRISM project whose code becomes public. We expect this uncertainty to be resolved in the very near future.