Skip to content

Latest commit

 

History

History

wallet

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ebsi-diplomas wallet

Reference implementation of EBSI-diplomas wallet

DISCLAIMER: This is only a prototype and not currently intended for production. Private keys are stored as plaintext in the wallet's database.

Python >= 3.10

Local application for managing multiple identities (keys and DIDs), storing verifiable credentials and interacting with online issuers and verifiers.

This is an HTTP-client to the fixed issuer and verifier services running at localhost:7000-1 (see docker-compose.yml at the root of the project). It can request diploma issuance and verification of presentations, perform DID resolution by connecting to the EBSI ledger, locally verify credentials and generate self-issued credentials for testing and debugging.

The application is currently accessible from within a shell but its core module is standalone and admits alternative user interfaces. It connects to a local SQL database and uses ssi-lib as its backend (currently a wrapper of waltid-ssikit).

Usage

$ ./run-wallet.sh --help

from inside the root of the project for details.

The wallet is managed via a shell (command interpreter). This is crude but intuitive. Once inside the shell, type help to see available commands and details.

Development

Database

Wallet data (keys, DIDs, credentials and verifiable presentations) are persistenty stored inside storage/wallet. In particular, a sqlite file is created inside this folder for each wallet container. For example, assuming the wallet runs inside a container called holder, the corresponding database may be accessed from the root of the project with:

sqlite3 storage/wallet/holder.db

Note: From the container's internal viewpoint, the above folder is mounted to /home/wallet/storage/holder.db.

Tests