Le vérificateur envoie une requête d’autorisation (par redirection, par code QR ou via l’API Digital Credentials du navigateur) qui décrit en DCQL (Digital Credentials Query Language) les attestations et les claims dont il a besoin, ainsi qu’un nonce et son identifiant client ; le portefeuille répond par un vp_token contenant des présentations SD-JWT VC avec des JWT de key binding ou des réponses d’appareil mdoc. Les modes de réponse comprennent direct_post et sa variante chiffrée direct_post.jwt.
L’authentification du vérificateur fait partie du protocole : des préfixes d’identifiant client comme x509_san_dns ou verifier_attestation permettent au portefeuille de montrer à l’utilisateur qui fait la demande. Le profil HAIP (High Assurance Interoperability Profile) fixe les options pour l’écosystème des portefeuilles européens. OpenID4VCI (version finale 1.0, septembre 2025) est le protocole complémentaire dédié à l’émission.