Skip to main content

EUDI wallet (v1)

Deprecated

EUDI_WALLET_VERIFIER:v1 is deprecated. Use EUDI wallet (v2) instead.

Verifies users using their European Digital Identity Wallet

Used when businesses want fast and highly trusted verification based on government‑issued digital identity. Users can securely share verified personal information from their EU Digital Identity Wallet, enabling smooth onboarding with strong, authoritative identity assurance.


Key features

  • OID4VP and mdoc Protocols: Implements OpenID for Verifiable Presentations and mdoc protocols.
  • Credential request: Requests and verifies EUDI wallet credentials from the user's European Digital Identity Wallet.
  • Dynamic output configuration: Output data blocks are dynamically determined based on the requestedCredentials configuration.
  • Credential to data block mapping: Maps credential claims to DSL data blocks for seamless flow integration.
  • No input required: Does not require any input data block from the flow context.
  • Multiple credential support: Can request multiple credentials in a single verification session.

Configuration

OptionTypeRequiredDescription
providerstringNoEUDI wallet provider. Accepted value: LISSI. When omitted, the provider is resolved from the Third Party configuration defined at infrastructure level.
requestedCredentialsarrayYesA mandatory array that specifies the credentials requested from the user's wallet. Minimum 1 credential required.
requestedCredentials.typestringYesThe URI identifying the type of credential requested.
requestedCredentials.formatstringYesThe format of the credential (e.g., dc+sd-jwt).
requestedCredentials.datablocksarrayYesAn array that maps the expected claims from this credential to known data blocks in the DSL (e.g., BasicIdentity, ExtendedIdentity). The corresponding data block will be generated and added to the flow context upon success. Can be an empty array.
enableRetrybooleanNoWhether to enable retry functionality. When set to true, a retry route is added, allowing users to cancel, decline, or time out and retry the verification process. Defaults to false.

Input data blocks

This step does not require any input data blocks.


Routes

RouteDescription
verifiedSuccessful wallet presentation. The user has authenticated with their EUDI wallet and consented to sharing the requested credentials through a verifiable or mdoc presentation.
retryUser cancelled, declined to share credentials, or the session expired, and can choose to retry. Only available when enableRetry is set to true.
cancelledThe presentation session expired before the user completed the wallet interaction. Only reached when enableRetry is false.
not_verifiedThe presentation attempt failed. The credential presented is not valid, the presentation does not satisfy the query, or the user declined the wallet request (when enableRetry is false).

Output data blocks

The EUDI wallet step produces different outputs depending on the presentation result. The output data blocks are dynamically determined based on the requestedCredentials configuration.

RouteData blocks produced
verifiedPresentationResult, data blocks specified in options.requestedCredentials.datablocks (e.g., BasicIdentity, ExtendedIdentity)
retryPresentationResult
cancelledPresentationResult
not_verifiedPresentationResult

Dynamic output: The verified scenario uses a dynamic function based on configuration options. All unique data blocks requested across all credentials (via the datablocks attribute) are collected and included in the output, along with PresentationResult which is always included.


Example payloads

PresentationResult — verified

{
"dataBlockId": "01900000-0000-7000-8000-000000000001",
"type": "PresentationResult",
"sessionId": "eudi-sess-7f3a2b1c-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
"result": "success",
"presentedAt": "2026-02-10T14:00:01.000Z",
"presentedCredentials": [
{
"type": "https://example.eudi.ec.europa.eu/pid/1",
"issuer": "https://issuer.eudi.example.eu",
"presentedClaims": [
{ "claimName": "given_name", "claimValue": "Jean" },
{ "claimName": "family_name", "claimValue": "Dupont" },
{ "claimName": "birth_date", "claimValue": "1985-03-22" }
]
}
]
}

BasicIdentity — verified (dynamic, based on requestedCredentials configuration)

{
"dataBlockId": "01900000-0000-7000-8000-000000000002",
"type": "BasicIdentity",
"givenName": "Jean",
"familyName": "Dupont",
"name": "Jean Dupont",
"birthDate": "1985-03-22",
"birthPlace": null
}

ExtendedIdentity — verified (dynamic, based on requestedCredentials configuration)

{
"dataBlockId": "01900000-0000-7000-8000-000000000003",
"type": "ExtendedIdentity",
"portrait": { "$ref": "vault", "$id": "020ff369-43d8-4b8a-94e7-6814c0bdc35a" },
"nationality": "FRA",
"personalAdministrativeNumber": null,
"familyNameBirth": null,
"givenNameBirth": null,
"sex": 1,
"emailAddress": null,
"mobilePhoneNumber": null,
"residentAddress": null,
"residentStreet": null,
"residentHouseNumber": null,
"residentHouseName": null,
"residentCountry": "FR",
"residentState": null,
"residentCity": null,
"residentPostalCode": null
}