Frouke Jansen sells burgers from her food truck at the Zuidvliet food truck festival, and for that she needs a pitch permit. This playground puts her Personal ID in your wallet. With it you sign in at the municipality and collect the permit into a wallet, without a form and without a copy of her passport.
How this works
Everything on this page follows the European Digital Identity standards. The terminology below is the same you will find in the specifications, so you can map what you see to what you read.
Issuer
The party that states something about you and signs it. Here there are two: we issue Frouke's Personal ID, and the municipality of Zuidvliet issues her pitch permit.
Holder
You. Your credentials live in your wallet on your phone, not in our database. You decide each time whether to share, and what.
Verifier
The party that asks for proof. Zuidvliet is the verifier when Frouke signs in: it asks who she is, then shows the permits in her name.
Issuance: OpenID4VCI
You scan a credential offer. Your wallet fetches the credential from the issuer and stores it, cryptographically bound to a key that only your phone holds.
Presentation: OpenID4VP
A verifier sends a query describing what it needs. Your wallet shows you the request, and only what you approve is sent back, signed.
Why the verifier learns less than you might expect
The Personal ID uses SD-JWT VC, which supports selective disclosure. Zuidvliet asks for what it needs to find Frouke's file, not for everything on her Personal ID. Your wallet shows the request and shares only that, and what it shares is still verifiably signed by the issuer.
Step 1
You need a wallet app to receive and share credentials. Any wallet that speaks OpenID4VCI and OpenID4VP can hold them, but it also has to accept credentials from an issuer it does not know yet, and not every wallet does.
Step 2
Scan the QR code with your wallet to receive the Personal ID. The data is fictional: you are receiving the Personal ID of Frouke Jansen, so nothing about you is stored anywhere.
Your credentials
0 / 1
Personal ID (SD-JWT VC)
Issue the Personal ID first: you need it to sign in at Zuidvliet.
Personal ID (SD-JWT VC)
Frouke's name, date of birth, nationality and address. Zuidvliet uses it to sign her in and show the permits in her name.
Start here
Step 3
Issuing a credential is only half the story. Zuidvliet is a live municipal portal that asks for the Personal ID you just received.
Our mock municipality
Frouke Jansen runs a food truck and wants to sell burgers at the Zuidvliet food truck festival. For that she needs a pitch permit from the municipality. In this demo you are Frouke: you sign in to the municipal portal with the Personal ID in your wallet, and collect the permit into a wallet, ready to show when an inspector comes by.
What happens next
Get Frouke's Personal ID
Issue the Personal ID above and store it in your wallet. It is what identifies Frouke when she signs in at the municipality.
Sign in to My Zuidvliet
Open the portal and choose Sign in. Instead of a username and password, you sign in with your wallet, which presents the Personal ID.
Go to Permits
Under Permits you find the pitch permit in Frouke's name: selling burgers from her food truck at the festival, with the days, hours and space she may use.
Collect the permit into your wallet
Choose Collect the permit and scan the QR code with your wallet app. The permit lands in your wallet, next to the Personal ID.
Or use a business wallet
Frouke sells as a business. If you have a business wallet, enter its address instead, and the permit goes to the business wallet rather than to your personal one.
You are missing Personal ID (SD-JWT VC). You can continue, but signing in will stop when Zuidvliet asks for it.
If something goes wrong
More to try
The same wallet, a different story. Each one issues what it needs and links to its own live service.