Skip to main content

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 15.3.1
React: 19.0.0
Language: TypeScript
Styling: Tailwind CSS 3.3.5

Core Libraries

bip39
tweetnacl
ethers
qrcode, qrcode.react, jsqr

Implemented 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 in src/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.

Extension Points

Future wallet capabilities should be added to this page only after the corresponding route, service, and UI flow exist in the codebase.