demo · v134
Age-over-18 — selective disclosure
The headline use case the working group pushed for: an adult-content or gambling site needs proof the user is over 18 — but doesn’t need their date of birth, name, address, or photo. The mdoc presentation request lists individual claims; the wallet returns only what the user agreed to share. Compare a “give me your whole licence” request to a “just the over-18 bit” request and watch what comes back.
Heads up
On desktop, behind
chrome://flags/#web-identity-digital-credentials and requires a wallet provider; on Android, generally requires a configured credential manager wallet. The demo issues a real navigator.credentials.get({ digital: ... }) call and shows the wallet response (or, in unsupported environments, a simulated response with the same shape).
probing navigator.credentials.get(digital)…
Pick a request profile
request JSON (Chrome → wallet)
{ /* pick a profile */ }
fields the relying party will see
No request issued yet.
Why this matters
An over-18 boolean is unlinkable; a date of birth is a near-perfect identifier. The mdoc / VC standards make selective disclosure the default — the explainer’s push was that the browser-side surface must too, so a relying party that asks for too much fails closed.