Issuance and verification of university diplomas in the SSI/EBSI context.
This is a simulation of the verifiable diplomas lifecycle in the Self-Sovereign Identity (SSI) context. Digital identities of involved parties are decentralized identifiers (DIDs) registered at the European Blockchain Service Infrastructure (EBSI) ledger.
Purpose of this project is the stabilization of issuer and verifier REST APIs
along with implementing a reference wallet and a Python package to be used by
all involved agents. To this end,
waltid-ssikit
has been chosen as
a SSI/EBSI backend of acclaimed general utility.
web
: Django app exposing a REST API with issuance and verification endpoints. Online issuers and verifiers are instances of this service.wallet
: Local application for managing multiple identities, storing credentials and interacting with online issuers and verifiers. It is intended for use by credential holders and offline verifiers.ssi-lib
: Python library providing core SSI capabilities to the above agents. These include DID registration to the EBSI ledger and DID resolution.
Make sure to initialize submodules when cloning the project:
git clone [email protected]:devs/priviledge/ebsi-diplomata.git --recurse-submodules
Assuming docker
is installed, build for local use the base image:
./build-base-image.sh --tag local
Note: Building the base image from zero takes several minutes due to the
compilation time of the waltid-ssikit
dependency.
Run the issuer
and verifier
services at localhost:7000-1
respectively with:
./run-dev.sh [--build]
Once both services are up, create a DID for each with:
./create-did.sh
Note: You will be asked to provide an EBSI token for onboarding the newly created issuer DID to the EBSI.
Run the wallet inside a container called holder
with:
./run-wallet.sh [--build]
You are ready to manage identities and interact via the wallet shell (command
interpreter). Type help
to see available commands and details.
waltid-ssikit
is WIP, so the
included submodule must be regularly updated:
git submodule update --remote
Upon any such update make sure to rebuild the containers.
When introducing changes to ssi-lib
make sure to rebuild the containers.