Age gate · EU Wallet

Preview — the age-only backend endpoint lands next iteration. Frontend flow is ready; the current build still uses the general sign-in verifier. See HAIP notes for the iteration plan.

Prove you’re over the line — nothing else

Selective disclosure on OID4VP 1.0. Your wallet proves you meet the threshold; your name, date of birth and document never reach this site.

Scan with a wallet on another device, or tap the button below on this device.

Open EU Wallet on this device

Preparing age request…

What we ask for: a single yes/no answer — are you at least the selected age. What we do not ask for: your name, your exact age, your date of birth, your identity document, or your address. The wallet enforces this with SD-JWT VC selective disclosure; the disclosure array we receive contains only the age-threshold claim.
Embed this age gate on your own site (one script tag)

Drop this on any HTML page. When the visitor passes the check, the codeb:age-verified event fires with a signed assertion your server can verify.

<div id="codeb-age-gate" data-threshold="18"></div>
<script src="https://phone.aloaha.com/age-verify-widget.min.js"
        data-tenant="your-tenant.example.com" async></script>

Widget ships today — see the drop-in demo. Age-only DCQL backend is on the roadmap (see HAIP notes); until it lands the widget in data-mode="signin" mode returns the full sign-in payload, and your server extracts the age claim from it.

Built to OID4VP 1.0 + HAIP 1.0. SD-JWT VC selective disclosure. HAIP implementation notes · EU Wallet verifier overview · Full sign-in