Wallet Server
The Wallet Server is a server‑side implementation of a DID wallet. It is designed for:
Running automated tests and integration pipelines without a mobile wallet
Powering AI agents that need to perform wallet actions programmatically
Simulating realistic wallet interactions with issuers and verifiers
It exposes a HTTP API over the Empeiria Wallet Core so you can:
Manage DIDs (generate/import, list, resolve by method, serve did:web)
Store and retrieve Verifiable Credentials (VCs)
Run claim and presentation flows from QR content
Operate in a multi‑tenant way scoped by the user’s JWT
sub
Swagger UI is available at /api-docs and a raw OpenAPI JSON at /swagger.json.
What It’s For
Mobile wallets are great for human‑in‑the‑loop flows. For automated testing or autonomous agents, you often need a non‑interactive, scriptable wallet that behaves like a real one. Wallet Server fills that gap by implementing the same claim/presentation flows you’d use with a mobile wallet, but as an HTTP API that can be driven by scripts, CI, or AI agent frameworks.
Key Highlights
DID methods:
did:empe(mainnet),did:empe:testnet(testnet), anddid:webEnd‑to‑end flows: claim (issuer QR) and presentation (verifier QR)
VC management: import, list (with filters), fetch, delete
Per‑request tenant scoping via JWT
sub→ isolates data by userdid:web support with configurable host/path
Health endpoints for ops (
/health/liveness,/health/readiness)
Architecture Overview
Wallet Core: persistence abstractions and DID/VC operations
Modules:
DID Management: generate/import/list/resolve DID docs, did:web endpoint
Credential Management: import, list/filter, get, delete
Flow Orchestration: initialize and confirm claim/presentation from QR
Core Module: request‑scoped user context, repositories, DI tokens
Auth Guard:
Authorization: Bearer <JWT>validation (RS256/ES256)Health: readiness/liveness checks
Multi‑Tenancy
All storage operations are scoped to the authenticated user via a request‑scoped provider that reads sub from the validated JWT. This means a single Wallet Server can safely host many logical wallets.
Last updated