Overview
Two React Native mobile applications, one credential issuer server in React, four node server applications, and a JS library that they all utilize. Issue and save verifiable credentials in a holder wallet application that backs up to IPFS.
Self Sovereign Identity & Verifiable Credentials
Self Sovereign Identity is the idea that an individual should be able to control their identity and who has access to it. Systems today use Governments as the centralized point for identity records and they have control of who has access to that information.
Self Sovereign Identity uses Verifiable Credentials which are cryptographically signed by the issuer & holder keys. The issuer issues a credential to a holder with specific claims, such as birthdate, or country of origin. The holder can then present a single claim to a verifier and prove the credibility of the claim without the issuer.
Here is a simplistic view of the flow:
My role in this project
I worked on this project with three developers over to the course of four months as an MVP for Self Sovereign Identity. My primary focus was the Holder Application, but I also worked on the services and the Verifier Application. The code was open-sourced at the end of the project.
Screenshots and Flow of the Holder App
Creating an account, mnemonic and adding declarative details
- User starts the app and clicks ‘Get Started’
- They create a PIN for the app that will lock it when they navigate to a different app
- They will be asked to create an Identity from a 12-word mnemonic
- The User enters their declarative details
Request a credential
- To request a credential, the user clicks the center (+) button and chooses the type of credential they want
- They verify the information they will share with the issuer.
- After submitting, they need to wait for the issuer to approve or reject the credential.
- When approved, the credential is saved into the Data Vault and appears blue on the home screen.
Credential Details and Presentation
- The user can click on the credential to see information shared with the issuer.
- A presentation of the verifiable credential can be created.
Project URLs
- React Native Applications on Github
- Node Services - Server for credential requests, convey service for sharing presentations, and a data vault to save credentials to IPFS.
- JavaScript Identity Library - The developers did the majority of the work on this library.