Live demo · bring your own wallet · no signup

Try it with your own EUDI wallet

Issue a credential into a real EUDI wallet (Sphereon, Lissi) and present it back with selective disclosure — all by QR. This is the standard OID4VCI and OID4VP flow, real and interoperable. The per-presentation result proves age_over_18 with holder key-binding for this presentation; it is not the cross-relying-party-unlinkable PSDP proof — for that, see the zero-knowledge age demo.

The round-trip

Two QR codes — into your wallet, then back out

Both steps run against this stack in production mode (PSDP_PRODUCTION=1), keyless, the same way a wallet hits them in the wild. Open this page on a laptop and scan with your phone, or tap the deep-link on the same device.

Get a credential

PSDP’s reference issuer mints an EU PID (SD-JWT VC) over standard OID4VCI and hands your wallet a credential offer. Scan the QR with your EUDI wallet, or tap the deep-link to open a wallet on this device.

Reference deployment: the issuer is a clearly labelled demo issuer and the PID carries demo data (“Alice Doe”) — it does no real-world identity proofing. Its signatures are real; its identity is not.

Prove you’re 18+

Now present it back. The verifier asks your wallet for a single claim — age_over_18 — over standard OID4VP with selective disclosure. Scan the QR, approve in your wallet, and the verdict appears here live: it checks the issuer signature and your wallet’s Key-Binding JWT and reveals no date of birth.

This is a per-presentation check with holder key-binding — honest scope: it does not by itself prove cross-relying-party unlinkability. PSDP’s unlinkability properties are modeled and machine-checked (evidence); the unlinkable path is the zero-knowledge age proof.

Wallet compatibility

Which wallets work today — and why some don’t

What you’re looking at

Standard rails, honestly scoped

PSDP is a reference implementation; production hardening is in progress. Everything on this page is the same stack the rest of this site documents — there is no separate demo environment. The issuance and presentation flows are plain OID4VCI and OID4VP: the interoperability is the point, and the selective disclosure (one boolean, no date of birth) is real.

What this page is not: the per-presentation verdict binds the holder’s key for that one exchange, but it is not the cross-relying-party-unlinkable PSDP proof. PSDP’s unlinkability properties are modeled and machine-checked, with the split published on the evidence page; the unlinkable age path is the real zero-knowledge proof on the demos page.

Scanned it end to end?

Bring what you saw to a 30-minute gap scan — engineering to engineering, no deck.

Talk to us →