A practical guide for relying parties: what to register, how to request data from a wallet, which checks make the result trustworthy, and what to do for users who do not have a wallet yet.
Reviewed 7 October 2026 against eIDAS 2.0, its implementing acts and the ARF.
Step 01
List the attributes your legal obligation or business process actually requires, and nothing more. Ask for derived attributes such as age_over_18 instead of a birth date where they meet the need. This list becomes both your request and your registration.
Step 02
Register in the member state where you are established, declaring who you are, why you request data and which attributes. You then identify yourself to wallets with an access certificate, and you may not request more than you registered. National registers are still being set up, so start this early.
Step 03
Remote requests use OpenID4VP, with a DCQL query naming the credentials and claims. Show a QR code when the user is on a desktop and a deep link when they are on their phone. Browsers are adding the Digital Credentials API as another way to reach the wallet.
Step 04
Check the issuer signature against the trusted lists, check revocation through the issuer’s status list, confirm device binding, and confirm the response answers your request and not a replayed one. Wallets present either SD-JWT VC or mdoc, so a verifier needs to handle both.
Step 05
Feed the verified attributes into your own process, such as onboarding, an age gate or a booking, and keep only what your obligation requires. The wallet shows users who they shared data with, and they can ask you to erase it.
Step 06
Wallets roll out country by country and adoption takes time. Offer the wallet as the fast path and keep your existing method for everyone else, branching on a failed, canceled or expired verification instead of stalling.
Authbound creates the wallet request, shows the QR code or deep link, verifies the presentation including issuer trust, revocation and device binding, and sends your backend a structured result. For issuers, it creates OpenID4VCI credential offers from your records.
const verification = await authbound.verifications.create({
policyId: 'pol_…', // the claims you registered for
customerUserRef: user.id,
});Registration and data minimisation stay your responsibility whichever route you choose.
When do wallets launch where you operate? See the EUDI Wallet timeline and rollout by country.