Live demo
See an age check run
Starting a check runs the product's own code and returns a real OpenID4VP request, asking a wallet for one claim and nothing else. Buttons stand in for the wallet, and the result says whether the answer was simulated or came from a wallet. You need no account, and the demo check is deleted a day later.
Nothing that names you is stored. A check records the yes or no answer, when it happened and how it was verified: no name, no date of birth, no document image.
The request
That code is a real OpenID4VP request, built by the same code a customer integration calls and
carrying the same DCQL query, which asks for age_over_18 and nothing else. Use the
buttons to stand in for the wallet.
A presentation arrived and was refused, and the check is still open.
Stand in for the wallet
These skip the verification step rather than fake it: no credential is involved, and the answer you
pick is recorded as you picked it. It is marked simulated, never eudiw or
av, so it can never be mistaken for a verified result.
Only a yes or no
The wallet discloses one boolean, age_over_18. No name, no date of birth, no document scan, so there is no identity document to leak later.
A no is a real answer
A valid credential can disclose that the holder is under age. Proving a credential is authentic is a different question from what it says.
Unanswerable is its own state
When a presentation carries no usable claim, the check reports that rather than guessing. A verification product inventing a pass is the worst thing it can do.
Ready when you are
Put this in your checkout or signup
The same check, behind your own API key. Signup is open and a test project works as soon as you create one. Sending real traffic needs us to switch your organisation to live mode, so that part stays a conversation.