← ClaudeAtlas

igrantio-verifier-backendlisted

Build the backend for an OpenID4VP + DCQL credential VERIFIER / relying party against the iGrant.io Organisation Wallet Suite (OWS). A tenant-aware Node/TypeScript (Express) service that hides per-organisation API keys behind a proxy, registers and receives OWS verification webhooks (HMAC-verified), and pushes the verified result to the browser over SSE. Use when an application must request and verify a credential presentation from an eIDAS 2.0 EUDI Wallet (EUDIW) or European Business Wallet (EUBW) and the API key must never reach the frontend. Supports wallet-signed transaction data (SCA payments, e-mandates, login/risk authentication, account access, QES document signing).
L3-iGrant/skills · ★ 0 · API & Backend · score 73
Install: claude install-skill L3-iGrant/skills
# iGrant.io verifier backend (OpenID4VP + DCQL) ## When to use Build or extend the server that a **verifier / relying-party** frontend talks to. It composes `igrantio-backend-proxy` + `igrantio-backend-webhooks` + `igrantio-backend-sse` for the verification flow only (least privilege). For the issuer equivalent use `igrantio-issuer-backend` (separate skill). Read `igrantio-ows-overview` first. **Before you build**: run the integrator intake in `igrantio-ows-overview` - environment, API key, tenancy, backend host, webhooks, frontend - one question at a time, a recommended default with each. ## What it does - **Proxy** `GET|POST|PUT ${PROXY_PREFIX}/{tenant}/...` → OWS, injecting the tenant's `ApiKey`. Allow-lists only OWS **verification** endpoints (send, history). - **Register** the verifier webhook idempotently (`VERIFIER_TOPICS`) via `scripts/register-webhook.ts`. - **Receive** `POST /webhook`, verify the `X-iGrant-Signature` HMAC, extract the `presentationExchangeId`, store the event. - **SSE** `GET /webhook/sse/{presentationExchangeId}` streams the event to the browser; `DELETE /webhook/{id}` consume-and-delete. ## Reference implementation Runnable Express + TypeScript app in [`./references`](./references). Same modules as the issuer backend; the only role differences are in `src/server.ts` (verification allow-list) and `scripts/register-webhook.ts` (`VERIFIER_TOPICS`). Default `PORT=6002` so it can run alongside an issuer backend. ## Steps 1. `cd references &