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.

    see also