wwWallet is a modular reference implementation for verifiable credentials, providing an end-to-end stack: a browser-based web wallet (with WebAuthn support), an OpenID4VCI credential issuer, an OpenID4VP verifier, an OIDC authorization server, and a shared TypeScript library of protocol helpers and utilities for integration and testing.
wallet-frontend— Wallet frontend (wallet-frontend/README.md)wallet-backend-server— Wallet backend and DB (wallet-backend-server/README.md)wallet-issuer— Issuer (wallet-issuer/README.md)wallet-verifier— Verifier (wallet-verifier/README.md)wallet-as— Authorization Server (wallet-as/README.md)vct-registry— SD-JWT VC Type Metadata Registry (vct-registry/README.md)lib/wallet-common— Shared library (wallet-common/README.md)wallet-docs— Documentation website (wallet-docs/README.md)
- Node.js (version 24 or later)
- Yarn (recommended: 1.x)
- Docker & Docker Compose
- Update submodules:
git submodule update --init --recursive --remote
- Install deps:
yarn install
- Setup dev environment (copies env templates & keys):
yarn setup
- Start all services:
yarn start
- Initialize DB:
- Uploads IACA certificate generated from step 3. to the database of the wallet
- Registers issuer and verifier in the database of the wallet
- Initializes wallet-verifier database
- Initializes vct-registry database
yarn init-db
- Install pre-commit hooks (optional but recommended):
- Installs pre-commit hooks in this repository and submodules that include a
.pre-commit-config.yamlfile. The hooks enforce.editorconfigrules and apply minimal auto-fixes (e.g. adding missing newlines).
yarn install:precommit-hooks
- Installs pre-commit hooks in this repository and submodules that include a
Check out master and pull the latest changes in all initialized submodules:
yarn submodules:pullSubmodules without a master branch are skipped. Pulls use --ff-only. Failed checkouts or pulls are reported, and the script continues with the remaining submodules. It lists all failed submodules at the end and exits with an error if any failed.
After yarn install, you can optionally start the documentation website separately on port 8001:
yarn --cwd wallet-docs startyarn build:prod -v latest -c ghcr.io/gunet -i vct-registry -i wallet-frontend -i wallet-backend-server -i wallet-issuer -i wallet-verifier -i wallet-asWant to contribute? Check out our Contribution Guidelines for more details!
The root repository uses the native EditorConfig checker in pre-commit and CI. .editorconfig-checker.json shares the checker exclusions for dependencies, generated files and submodules. Each submodule runs its own formatting checks.
To install hooks only for the root repository, then run all hooks:
pre-commit install
pre-commit run --all-filesUse yarn install:precommit-hooks to install hooks in the root repository and submodules together.
To check formatting without changing or staging files:
pre-commit run editorconfig-checker --all-filesOmit --all-files to check only staged files. The first run installs the pinned native checker in pre-commit's cache. On commit, the final-newline fixer runs before the checker; fix any remaining violations and stage the changes before retrying.