Veri Wallet
Mini Verifiable Credential Wallet
Full-stack verifiable credential wallet with a NestJS backend and a Vite/React frontend.
Repo
- Code: https://github.com/jdevcs/veri-wallet
- Quick clone:
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(requiresKEYPAIR_PASSPHRASE). - Default port:
3000(configurable viaPORT).
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 viaPORTorvite.config.ts). - Backend URL config:
VITE_API_BASE_URL(preferred) orREACT_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.portinui-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.