Skip to main content

Sphyre Verifier

Sphyre Verifier is the verifier-facing application. It lets organizations create presentation requests, show QR codes to holders, track holder responses, verify submitted presentations, and manage reusable request presets.

Technology

Framework: Next.js 15.4.4
React: 18.3.1
Language: TypeScript
Styling: Tailwind CSS 3.3.5

Core Libraries

lucide-react
react-qr-code
@yudiel/react-qr-scanner
ethers, bip39, tweetnacl

Implemented App Routes

Main Workflows

  • Register or recover a verifier identity.
  • Create presentation requests with POST /api/verifier/requests.
  • Render QR codes for wallet scanning.
  • Poll request and presentation status while waiting for holder action.
  • Verify submitted presentations with POST /api/verifier/presentations/:id/verify.
  • View received presentations with GET /api/verifier/:did/presentations.
  • Manage request presets through GET/POST /api/verifier/:did/presets.
  • Resolve public credential verification pages through /verify/[ipfsHash].

Implementation Notes

The frontend keeps API integration in src/services, shared UI in src/components/ui, and route pages under src/app. New UI should follow the existing Tailwind and component patterns.

Implemented API Calls

Verification Contract

Verifier requests define the purpose, required credentials, requested attributes, optional predicates, and expiration. Holder responses create presentation records. Verification returns:

Security Notes

  • Verifier pages should only show data that was explicitly disclosed by the holder or derived from accepted predicate proofs.
  • Presets are reusable request definitions; changing a preset should not mutate already-issued presentation requests.
  • Public IPFS verification pages should treat IPFS content as untrusted until Fortro Engine confirms signature, anchor, and revocation status.