Age Verification with the EUDI Wallet: The Wine Shop Demo
We've created interactive demonstrations of real-world EUDI Wallet use cases. Read on for an overview of our end-to-end demo that simulates a real purchase journey for an age-gated commerce EUDI use case.

- Published on
Age-gated commerce is a common first use case for the EUDI Wallet. The challenge is simple: verify eligibility without collecting more personal data than you need. The wine shop demo shows one practical pattern: request a single PID age attribute, apply a destination-specific legal age rule, and complete a simulated purchase.
This post walks through the flow, the verification details, and the scope so teams can reuse the pattern safely.
What is the wine shop demo?
The wine shop is an end-to-end demo that simulates a real purchase journey. The scope is a reference flow with simulated payment and simplified business logic. The value is that the full journey is inspectable and aligned to the EUDI Wallet verifier pattern.

The user journey end-to-end
The flow is deliberately familiar so you can focus on where verification happens:
- Browse and add items to the cart.
- Select a shipping destination.
- Verify identity with the wallet.
- Evaluate the age check.
- Complete a simulated payment and confirm the order.
The destination choice matters because legal drinking age is jurisdiction-specific. The demo uses the shipping destination to set the minimum age threshold used for eligibility.
What gets requested from the wallet?
The demo requests a single PID age attribute, chosen by user preference, rather than a full identity bundle. The PID credential format shown is SD-JWT (dc+sd-jwt) with VCT urn:eudi:pid:1.
The supported attributes are:
age_equal_or_overage_in_yearsbirthdate
The verifier creates an authorisation request at:
/openid4/vp/v1_0/authorizations
The wallet handoff is a QR code, and the verifier polls for status:
/openid4/vp/v1_0/authorizations/{authorizationId}/status
After authorisation, the demo retrieves:
- Policy response:
/openid4/vp/v1_0/authorizations/{authorizationId}/policy-response - Disclosed claims:
/openid4/vp/v1_0/authorizations/{authorizationId}/credentials
For protocol details, see the OID4VP specification.
How the age check works
Eligibility is computed from the disclosed attribute and the destination’s legal age:
age_equal_or_over.<minimumAge>uses a boolean attestation.age_in_yearsis compared directly to the required age.birthdateis used to compute age and compare to the required age.
This keeps disclosure minimal: the relying party only sees what it needs to decide eligibility, and the user explicitly consents to the attribute they share.
Scope boundaries and guardrails
The scope is intentionally narrow:
- The payment step is simulated.
- Issuer trust-chain validation runs through the authorizer flow, rather than the browser UI.
- The business logic is simplified to highlight the verification decision.
These boundaries are important if you plan to use the demo as a starting point.
How to reuse the pattern
If you operate an age-gated service, this flow is a good template:
- Use a single, minimal attribute to satisfy the policy.
- Tie the decision to jurisdictional rules you control.
- Keep the user journey short and transparent.
You can adapt the age logic or jurisdictional rules without changing the verifier pattern itself.
Next steps
Try the demo and inspect how the policy and claim handling are implemented:
- Live demo: https://eudi-usecase.demo.vidos.id/
- Repo: GitHub - vidos-id/usecase-demos: Collection of demos showcasing the use of Vidos in various use cases
- EUDI use case manuals: https://ec.europa.eu/digital-building-blocks/sites/spaces/EUDIGITALIDENTITYWALLET/pages/896827987/Use+case+manuals
- PID rulebook: European Digital Identity Wallet - European Digital Identity
Talk to our team
Have a question or want to chat about how Vidos can help? Reach out to our team of real-world practitioners today.
Want to learn more?
Download our guide:
eIDAS 2.0 Use Cases
Explore how eIDAS 2.0 is transforming identity verification across key sectors like banking, healthcare, education, and travel. This practical guide highlights what the regulation means for real world services and how verifiable credentials can simplify, secure, and future proof digital interactions.
Download here