There is a lot of interest in Atala PRISM becoming mainstream, but there is no simple way to use PRISM on the web
A lot of work is required for any web app to integrate PRISM, discouraging most devs
Let's build a Browser Extension (like MetaMask) that will allow people to manage their identities/credentials and allow web apps to easily interact with PRISM.
This is the total amount allocated to Enable any webapps to use PRISM.
A browser wallet is crucial for gaining massive adoption of Atala PRISM. We saw this when MetaMask was released. Since then, it unlocked the Ethereum ecosystem to any developer. I expect that this PRISM browser wallet does the same for Atala PRISM.
Key details:
What users get
Once a user installs the extension, it will allow the user to:
What developers get
For developers, it will enable them to build web applications that interact with the user's wallet by a clearly defined and simple-to-use API, including ways to:
A browser wallet unlocks the Atala PRISM ecosystem to web developers. The API will allow developers to interact with Atala PRISM immediately, growing their confidence in integrating Atala PRISM with their web application.
This extension is critical for any identity solution because it allows any web application to reap the benefits of Atala PRISM.
The main risk is that the Atala PRISM project doesn't become public soon, which would prevent people from using their wallets for real scenarios.
There are no risks to the technical capabilities because we have already solved the key technical challenges from this project.
Other potential risks are:
The application will be built in several iterations, each iteration involves writing automated tests to prevent future changes from breaking old functionality.
Week 1 to 2 - Preparation steps
Let's do the necessary bootstrapping work to get started on the project, tasks include:
Week 3 - PRISM SDK Wrapper
It is ideal to write a small wrapper in order to use the Atala PRISM SDK smoothly, this way, there will be a single layer that interacts with PRISM which allow us to decouple the code from the SDK.
The overall goal is to have the following methods available:
Week 4 to 6 - Wallet API
We'll need a low-level API that allows the view layer to do the necessary wallet operations, which includes the following:
Week 7 to 8 - Main pages
By now, we should have everything necessary to complete the user interface (UI), let's start with the main pages:
Week 9 - Credential pages
There are pages that require functionality specific to credentials:
Week 10 - DID pages
There are pages for DIDs:
Week 11 - Web App bridge pages
We need pages to handle the website interactions:
Week 12 - Final pages
At last, we'll include extra pages that are useful for the app:
Week 13 to 14 - Internal QA + bugfixes
Let's take some focus on testing the application to address potential corner cases that haven't been handled before.
This period should help us to cover anything that we could have missed before.
Week 15 to 16 - Cross-browser compatibility fixes + publish to the web stores
There is some work required in order to support more than one browser with the same source code, let's do the necessary adjustments so that our application works in the main browsers (Firefox/Chrome/Safari).
This period should also cover the necessary work that is required to publish to the web stores.
Week 17 to 18 - Internal security audit + fixes + security docs
This application intends to be crucial for the PRISM ecosystem, given that it will deal with sensitive data, it is natural to put some effort on finding ways where the security could be compromised, as well as put effort on fixing those.
We should report our findings as well as the known issues that we plan to fix in another iteration.
Week 19 to 21 - End to end automated acceptance tests
In order to avoid breaking the application when submitting fixes/updates, it is ideal to have an end-to-end automated test suite for the acceptance use cases.
Browser extensions like this one are known to require a complicated set up to run these scenarios, let's find a practical way to write these end to end tests and prepare tests for the main use cases.
Week 22 - General project documentation
Let's write the necessary documentation for:
Week 23 - Example web application
Let's create an example web application that interacts with PRISM.
The budget is estimated based on the following team.
Senior Software Engineer
Responsibilities:
Rate: $2500 USD/week by working full time (40h/week).
Technical Architect/Lead
Responsibilities:
Rate: $1000 USD/week by working 10h/week.
Alexis Hernandez
Alexis used to work for IOHK on the Atala PRISM team. He was involved in Atala PRISM from the beginning by designing most of the components. He was the Atala PRISM Technical Architect, leading the development for over two years.
Alexis participated heavily in the design and development of the internal Atala PRISM Browser Wallet, which is similar to this proposal. The main difference is that the proposal targets individuals while the internal wallet targets institutions. There is a demo showcasing such a wallet (https://www.youtube.com/watch?v=wemcgPA3IPQ).
Alexis was also involved in many other Browser Extension projects, even creating its reusable template that has helped many people to build browser extensions (https://github.com/AlexITC/chrome-scalajs-template). He also maintains the SBT plugin for writing Browser Extensions in Scala.js (https://github.com/AlexITC/scala-js-chrome).
In addition, Alexis runs a successful development company (Wiringbits) whose primary focus is on web and blockchain development (https://wiringbits.net).
Links:
Cesar Gurrion
Cesar is an experienced frontend developer who loves the blockchain space, He is also part of Wiringbits, where he has been able to contribute to several cryptocurrency projects.
Cesar also worked as a contractor for IOHK, where he made considerable improvements to the internal Atala PRISM Browser Wallet, making it work more similar to MetaMask.
As part of the IOHK contractor's engagement, Cesar was a pioneer of the PRISM SDK, using it for building the Atala PRISM Credentials Verification Portal, which allows people to verify the authenticity of a Atala PRISM credential by uploading/pasting such Verifiable Credential into the portal.
He also built the Atala PRISM Operation Tracker, a Verification Portal component that allows people to track an operation submitted to Atala PRISM, displaying when it gets confirmed/rejected by the Atala PRISM network.
His contributions to the Atala PRISM team became essential tooling for the internal and external teams working with Atala PRISM.
Links:
I'd likely try again. I feel like this project would be vital for gaining adoption for Atala PRISM.
We'll handle everything publicly, from the backlog to the milestone releases.
We have prepared a detailed timeline which we'll put into a Kanban board, such a board will allow us to easily understand the project state.
I'd define success if:
This is a new proposal.
I was involved in developing Atala PRISM from the beginning, designing many of its existing components. I also run a development company (https://wiringbits.net) where we have been involved in multiple crypto-related projects, including the IOHK's PRISM Browser Wallet.