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.
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.
Scan with your EUDI wallet, or open it here:
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.
Scan with your EUDI wallet, or open it here:
Which wallets work today — and why some don’t
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.