Sphyre ALV
Sphyre ALV is the holder wallet. It is implemented as a Next.js App Router application and communicates with Fortro Engine for wallet registration, credentials, presentation approvals, consent records, and activity history.Technology
Framework: Next.js
React:
Language: TypeScript
Styling: Tailwind CSS
15.3.1React:
19.0.0Language: TypeScript
Styling: Tailwind CSS
3.3.5Core Libraries
bip39tweetnaclethersqrcode, qrcode.react, jsqrImplemented App Routes
Responsibilities
- Create or recover a wallet from a BIP39 seed phrase.
- Protect local wallet state with a PIN-based unlock flow.
- Derive and use holder DID keys for API authentication and presentation approval.
- Fetch and display credentials from
GET /api/wallet/:did/credentials. - Request credentials through the wallet credential-request endpoints.
- Scan credential offers and presentation requests.
- Approve or reject presentation requests.
- Manage consent records and revocation.
API Client Surface
The application keeps API calls insrc/lib/api and src/services. Important service areas include authentication, wallet operations, issuer lookup, verifier flows, and consent management.
Runtime Data Boundary
Implemented API Calls
Security Notes
- Seed phrase and PIN handling stay client-side; backend authentication is DID challenge/JWT based.
- The wallet sends explicit holder decisions for credential requests, presentation approvals, and consent revocation.
- Credential displays should treat
credential_preview_encrypted, anonymous credential fields, and evidence metadata as sensitive application data.