Skip to main content

Veri Wallet

Mini Verifiable Credential Wallet

Full-stack verifiable credential wallet with a NestJS backend and a Vite/React frontend.

Repo

git clone https://github.com/jdevcs/veri-wallet
cd veri-wallet

Projects

  • backend-veri-wallet: NestJS API for issuing, storing, and verifying credentials.
  • ui-veri-wallet: React UI for issuing, viewing, sharing, and verifying credentials.

Backend (NestJS)

  • Tech: NestJS, TypeScript, file-based persistence.
  • Security: Ed25519 signing; encrypted keypair stored in data/keypair.json (requires KEYPAIR_PASSPHRASE).
  • Default port: 3000 (configurable via PORT).

Backend setup

cd backend-veri-wallet
npm install
export KEYPAIR_PASSPHRASE="strong-passphrase" # required
npm run start:dev

Other scripts: npm run build, npm run start:prod, npm test, npm run docker:build, npm run docker:run.

Frontend (Vite + React)

  • Tech: React 18 + TypeScript, Vite dev server.
  • Default dev port: 5173 (configurable via PORT or vite.config.ts).
  • Backend URL config: VITE_API_BASE_URL (preferred) or REACT_APP_API_BASE_URL.

Frontend setup

cd ui-veri-wallet
npm install
npm run dev # http://localhost:5173

Build/preview: npm run build, npm run preview.

Configure frontend port

  • edit server.port in ui-veri-wallet/vite.config.ts.

CI

  • GitHub Actions runs backend build/tests and frontend build (.github/workflows/ci.yml).

Key endpoints (backend)

  • POST /credentials — issue and persist a signed credential.
  • GET /credentials — list all credentials.
  • GET /credentials/:id — fetch by id.
  • POST /credentials/verify — verify credential signature.
  • DELETE /credentials/:id — delete credential.