Findy Agency is an open-source project for a decentralized identity agency. OP Lab developed it from 2019 to 2024. The project is no longer maintained, but the work will continue with new goals and a new mission. Follow the blog for updates.
Findy Agency is a collection of services (Core, Auth, Vault and this service) that provide full SSI agency along with a web wallet for individuals. To start experimenting with Findy Agency we recommend you to start with the documentation and set up the agency to your localhost environment.
Web wallet frontend for Findy agency. Uses WebAuthn / Fido2 for authentication to agency backend.
This project is a PoC/MVP of a web wallet intended for Findy agency users (individuals). The UI is unfinished in many ways and probably this project will not be seen in production as such. However, it shows how to implement
- Authentication to Findy agency from browser environment
- Data fetching and manipulation use cases that utilise Findy agency vault service (GraphQL-interface)
Wallet related to the general architecture
Wallet application interacts with two Findy agency services:
- Authentication service for agency registration and authentication.
- Vault service provides the app backend that serves data over GraphQL interface.
-
Install dependencies
npm install
-
Run application
npm start
- This will launch the service at: http://localhost:3000
- You can access the service with a web browser when the Vault is running in background
Here is listed some of the features the current version of this web wallet have. Bare in mind that the features and how they work can change in the future.
Web wallet uses passwordless WebAuthn / Fido2 authentication for the registration and login. You must to have biometric authentication or hardware token available in order to make succesful registration/login. Check more info about WebAuthn here: https://webauthn.io/
Note:
- The agent name you use for registration must be unique among agency users, otherwise the registration fails.
- You can also emulate authenticators e.g. in Google Chrome
In chat view you can send and receive messages, make proofs and receive credentials with other agents which you have connected with.
In order to make a connection with other agent, you have to scan qr-code invitation or paste invitation json provided by the other agent. Press "Add connection" button to scan or paste invitation with your web wallet. Connection request is sent when you press the "confirm" button. It can take several secounds to complete connection request.
You can generate your own invitation json by pressing the "New invitation" button. You can share generated json with the agent who wants to make connection with you.
When you successfully made a connection with other agent, you can send and receive messages within the connection.
After you have a connection with other agent, they can send you verified credentials. You can accept or decline these offers.
You can browse your received credentials by going in the "Wallet" section of the app.
In chat view you can also receive proof requests. You must have proper credential in your wallet in order to accept the proof. You can also decline the request. The app will tell you if you have the suitable credentials to accept the proof request or not.