Zero-knowledge identity
Aadhaar-backed entry for your event in one React component. Your attendees scan once; you receive a verifiable proof, never their Aadhaar data.
Integrate in 3 steps
npm i @digigo/verifyOne dependency. Works in any React app.
// wherever you gate entry — one component runs the whole QR flow
import { DigiGoVerify } from "@digigo/verify/react";
<DigiGoVerify
eventKey="DEVCON-MUMBAI"
onResult={(c) => fetch("/api/verify", {
method: "POST",
body: JSON.stringify({ proof: c.proof }),
})}
/>Renders the QR and runs the mint → poll flow, styled out of the box.onResult fires once with the credential; POST itsproof to your route.
// app/api/verify/route.ts — the whole endpoint is one re-export
export { POST } from "@digigo/verify/server";That one line is the whole endpoint. It fetches DigiGo's public JWKS once, then verifies every proof's signature locally. No secret, no callback to DigiGo.
A small blob you verify cryptographically. No name, no Aadhaar number, no address, no photo.
{
"format": "jws",
"proof": "eyJhbGciOiJFZ…",
"publicSignals": {
"indian": "INDIAN",
"ageAbove18": true,
"nullifier": "a3f9…",
"eventCode": "DEVCON-MUMBAI"
}
}indianINDIAN · NOT_INDIANnullifierper-event pseudonym for de-dup — not an identityageAbove18only if the event asks for itNo smartphone, a failed face scan, a lapsed session, or someone who simply walked away all produce no credential — which is NOT_ESTABLISHED, not a negative. Treating a missing credential as "not Indian" wrongly rejects real Indians. Only ever act on a credential you received and verified.