Three modes, your pick — all end in the same Verify check.
Vendor policy
This is what THIS shop requires, independent of whether the credential
itself checks out. A presentation can pass its signature, freshness, age, and
holder-of-key checks and still be turned away here — because the credential's
assurance (how confidently the age was actually checked) is below what this
vendor decided it needs.
1. Get a challenge
This represents what a bouncer's device would show. A server-tracked,
single-use nonce — the strongest anti-replay guarantee this demo offers. Scan the QR
code with the holder app's Present page, or use the copy icon as a fallback.
2. Verify a presentation
Scan the QR code shown on the holder app's Present page, or paste the JSON manually.
No challenge to fetch here — the holder generated its own nonce
(leave holder's Challenge field blank on its Present page). One QR exchange instead
of two, at a real cost: this verifier has no server-tracked nonce to check, so a
captured presentation is replayable within the 120s freshness window instead of
being single-use. Fine for a demo; not something to assume is safe for a real
deployment.
Verify a presentation
Scan the QR code shown on the holder app's Present page, or paste the JSON manually.
1. Get a link for the holder to scan
Same anti-replay strength as Interactive (a server-tracked, single-use
challenge) — but instead of the holder showing a result QR for THIS device to scan,
their phone grabs the challenge straight from this link and posts its presentation
straight back to it. Needs both devices to have internet access (not just a shared
room), unlike the other two tabs.
Scan the QR code with the holder
app's Present page ("Scan link" tab), or use the copy icon above and paste it there —
same QR-or-text fallback as everywhere else in this demo.