Technical

Validating Proof-of-Age Against the EU Trusted List: The Step Everyone Skips

Receiving a Proof-of-Age attestation is not the same as trusting it. The EU verifier guidance requires you to validate every age proof against the Age Verification Trusted List before granting access. The Commission already hosts a test list in the eIDAS Dashboard ACC environment — and it is not the same list as the WRPAC provider list.

eIDAS Pro Team
June 26, 2026
9 min read
Validating Proof-of-Age Against the EU Trusted List: The Step Everyone Skips

A verifier that accepts a Proof-of-Age attestation because its signature is well-formed has done half the job and skipped the important half. A valid signature only proves the credential was signed by some key. It says nothing about whether that key belongs to an issuer the EU actually trusts to attest age. Closing that gap is the job of the Age Verification Trusted List, and the verifier guidance is explicit: you must validate every age attestation against it before granting access.

This is the step teams most often skip — and the one an auditor will most reliably ask about.

Trust is a list, not a signature

In the EUDI ecosystem, trust is anchored in published trusted lists: machine-readable registers of the entities authorised to play a given role. For age verification, the relevant register is the Age Verification Trusted List — the set of issuers whose Proof-of-Age attestations a conformant verifier is permitted to accept.

The validation chain your verifier must complete:

  1. Parse the presented mso_mdoc Proof-of-Age (the eu.europa.ec.av.1 attestation — see our developer guide to the namespace).
  2. Verify the signature against the issuer's certificate.
  3. Anchor that certificate to the Age Verification Trusted List — confirm the issuer is actually listed.
  4. Only then grant access.

Skip step 3 and you will happily accept a perfectly-signed attestation from an issuer nobody authorised. That is the difference between cryptographic validity and trust, and it is the whole reason trusted lists exist. We walk the general version of this chain in How eIDAS Verification Works; this post is the age-verification-specific instance of it.

There is already a test list — in the ACC environment

You do not have to wait for production to build this. The Commission already hosts a test Age Verification Trusted List in the eIDAS Dashboard ACC (acceptance) environment. A notable detail for anyone exploring it: the reference test issuer appears under Iceland in that environment — a test placement, not a statement about Icelandic deployment. Use the ACC list to develop and exercise your trust-anchoring logic against real list structure now, ahead of the production list going live.

The eIDAS Dashboard is the same infrastructure that will host the production trusted-list endpoints. Building your validation against the ACC list means that when the production list publishes, you are changing an endpoint and a trust anchor — not architecting a capability from scratch.

The distinction that trips people up: AV list ≠ WRPAC list

This is the single most important clarification in this post. The eIDAS Dashboard will host multiple trusted lists for different roles, and conflating them leads to genuinely wrong integrations:

ListAnswers the questionUsed by
Age Verification Trusted List"Is this issuer authorised to attest age?"The verifier, to trust an incoming proof
WRPAC provider list"Is this relying party authorised to request attributes?"The wallet, to trust an outgoing request

They run in opposite directions. The AV Trusted List protects you, the verifier, from accepting proofs from rogue issuers. The WRPAC provider list protects the user's wallet from disclosing attributes to unregistered relying parties. As we documented, the WRPAC provider list is not yet published — its obligations apply from 24 December 2026. The AV test list, by contrast, is already available in ACC. Same dashboard, different lists, different timelines, different directions of trust. Treat them as one thing and you will wire your verifier to check the wrong register.

Operational realities of trusted-list validation

A few engineering points that separate a robust implementation from a brittle one:

  • Cache, but refresh. Trusted lists change — issuers get added, certificates rotate. Fetch the list, cache it for performance, but refresh on a schedule and handle the case where a previously-trusted anchor disappears.
  • Fail closed. If you cannot reach or validate the trusted list, the correct default for an age gate is to deny, not to wave the user through. A trust check that fails open is not a trust check.
  • Distinguish "not yet published" from "empty." During this transition period an endpoint may legitimately return that a list is not published. That is a defined state, not an error to swallow — exactly as we found with the late-May 2026 EU-27 WRPAC status, where the WRPAC endpoint deliberately reports unpublished. Your code should recognise the difference between "the list says no issuers" and "there is no list yet."
  • Separate test and production anchors cleanly. The ACC list (with its Iceland test issuer) must never be a trust anchor in your production verifier. Keep environment configuration explicit so a test anchor can never leak into production trust.

Why this is a competitive advantage, not just a checkbox

Most age-verification vendors today validate a signature and call it done. A verifier that correctly anchors to the EU Age Verification Trusted List is doing something materially stronger: it is enforcing the EU's governance of who may attest age, not just the cryptography of a single signature. When a regulated relying party — a gaming operator, an age-restricted marketplace, a platform under DSA Article 28 — has to demonstrate how it knows an age proof is genuine, "we anchor to the EU Age Verification Trusted List" is a far stronger answer than "the signature checked out." The same logic underpins our WooCommerce and online gaming integrations.

The bottom line

Validating against the Age Verification Trusted List is the step that converts a signed credential into a trusted one. The test list exists today in the eIDAS Dashboard ACC environment, so there is no reason to defer building it. Anchor every proof to the list, fail closed when you cannot, refresh your cache, keep test and production anchors strictly separate — and never confuse the AV issuer list with the WRPAC provider list. Get this right and your verifier is enforcing EU trust governance, not just checking math.

This post reflects the EU Age Verification trust infrastructure as of June 2026. The production Age Verification Trusted List was not yet live at time of writing; the ACC test list and its placements are for development only. Verify against the eIDAS Dashboard and current verifier guidance before relying on specifics.

Share this article

Help others learn about eIDAS verification