Skip to content
This repository has been archived by the owner on May 28, 2024. It is now read-only.

findy-network/findy-wallet-pwa

Repository files navigation

findy-wallet-pwa

test last-commit GitHub commit activity GitHub contributors

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.

Getting Started

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.

Project

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

  1. Authentication to Findy agency from browser environment
  2. Data fetching and manipulation use cases that utilise Findy agency vault service (GraphQL-interface)

General architecture

Wallet related to the general architecture

Architecture

Wallet application interacts with two Findy agency services:

Running in development mode

  1. Setup backend for local development environment

  2. Install dependencies

    npm install
    
  3. 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

Wallet features

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.

Register/Login

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/

Wallet login

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

Chat

In chat view you can send and receive messages, make proofs and receive credentials with other agents which you have connected with.

Connection

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.

Invitation

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.

Messaging

When you successfully made a connection with other agent, you can send and receive messages within the connection.

Credential Offer

After you have a connection with other agent, they can send you verified credentials. You can accept or decline these offers.

Wallet credentials

You can browse your received credentials by going in the "Wallet" section of the app.

Proof Request

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.