| mDoc name | SD-JWT VC | Req. | Description |
family_name | family_name |
MUST |
Current last name(s) / surname(s) |
given_name | given_name |
MUST |
Current first name(s) |
birth_date | birthdate |
MUST |
Date of birth (full-date) |
age_over_18 | age_over_18 |
MUST |
Attesting the holder is over 18 |
issuance_date | iat |
MUST |
PID issuance date |
expiry_date | exp |
MUST |
PID expiry date |
issuing_authority | issuing_authority |
MUST |
PID Provider name |
issuing_country | issuing_country |
MUST |
Issuing country (ISO 3166-1 a-2) |
age_over_16 | age_over_16 |
optional |
Attesting the holder is over 16 |
age_over_21 | age_over_21 |
optional |
Attesting the holder is over 21 |
age_over_65 | age_over_65 |
optional |
Attesting the holder is over 65 |
age_in_years | age_in_years |
optional |
Current age in years |
age_birth_year | age_birth_year |
optional |
Year of birth |
family_name_birth | family_name_birth |
optional |
Last name(s) at birth |
given_name_birth | given_name_birth |
optional |
First name(s) at birth |
birth_place | place_of_birth |
optional |
Place of birth (nested for SD-JWT) |
birth_country | place_of_birth.country |
optional |
Country of birth |
birth_state | place_of_birth.region |
optional |
State/region of birth |
birth_city | place_of_birth.locality |
optional |
City of birth |
resident_address | address.formatted |
optional |
Full residential address |
resident_country | address.country |
optional |
Country of residence |
resident_state | address.region |
optional |
State/region of residence |
resident_city | address.locality |
optional |
City of residence |
resident_postal_code | address.postal_code |
optional |
Postal code |
resident_street | address.street_address |
optional |
Street |
resident_house_number | address.house_number |
optional |
House number |
sex | sex |
optional |
Sex (ISO/IEC 5218: 0-9) |
nationality | nationalities |
optional |
Nationality/-ies (a-2; plural in SD-JWT) |
document_number | document_number |
optional |
PID document number |
personal_administrative_number | personal_administrative_number |
optional |
Administrative number (e.g. national identifier) |
issuing_jurisdiction | issuing_jurisdiction |
optional |
Issuing subdivision |
portrait | picture |
optional |
Facial image of the holder |
| Building block | Status | Evidence |
| OID4VCI pre-auth + auth-code issuance |
✓ implemented |
issuer_vci + document_server |
| OID4VP presentation |
✓ implemented |
verifier engine |
| Credential format: ISO mdoc (mso_mdoc) |
✓ implemented |
COSE/ES256, tag-24, golden vectors |
| Credential format: SD-JWT VC (dc+sd-jwt) |
✓ implemented |
document_server/sd_jwt_vc_issuer |
| DCQL query language |
✓ implemented |
verifier DCQL |
| HAIP 1.0 profile |
✓ implemented |
VCI_HAIP_MODE umbrella |
| transaction_data (OID4VP 1.0) |
✓ implemented |
conformant + fallback, tested |
| Encrypted response direct_post.jwt (ECDH-ES) |
✓ implemented |
verifier/jwe_ecdh |
| client_id prefixes (x509_san_dns / verifier_attestation / did) |
✓ implemented |
|
| Wallet attestation (WUA/WIA/KA) |
✓ implemented |
wallet_attestation |
| Trust: signed/versioned Trusted List snapshot |
✓ implemented |
trust_registry |
| Dual trust anchor (ETSI 119 612 + LoTE) |
✓ implemented |
sync_eu_tsl + lote_sync |
| ISO 18013-5 proximity (mDL) |
✓ implemented |
cross-vendor verified (Scytales) |
| ISO 18013-7 online (Option A) |
✓ implemented |
direct_post.jwt live |
| DSC revocation via IACA CRL |
✓ implemented |
revocation_service/crl |
| Status Lists (Token Status List) |
✓ implemented |
revocation_service |
| VICAL consumer (ISO 18013-5 Annex C) |
✓ implemented |
interop/vical.py — COSE verify + IACA extract |
| ARF PID Rulebook claim names |
✓ implemented |
issuer/utils/pid_claim_names + arf_pid_reference |
| OIDF OID4VP 1.0 Final conformance suite |
✓ implemented |
4/4 passed 2026-08-22 |
| Live interop runners (OID4VP present + OID4VCI issue) |
✓ implemented |
interop/runner.py |
| Full EUDI lifecycle test (Issue -> Present -> Verify) |
✓ implemented |
interop lifecycle runner |
| Trusted List / LoTE consumer (ETSI TS 119 612) |
✓ implemented |
interop/trusted_list.py — XAdES/JWS signature verified, fail-closed |
| Programmatic interop API + CI (tiered) |
✓ implemented |
interop/api_views.py — API-key runs, machine-readable PASS/FAIL |
| External-interop evidence register |
✓ implemented |
interop/evidence.py — third-party proof w/ artifacts + reproduction |
| Holder-side OID4VCI (External Issuer -> ForTrust Wallet) |
partial |
interop/holder_client.py — real pre-auth OID4VCI pull + issuer-sig verify |
| Formal EUDI certification |
external |
requires the official conformance body |
Code-presence + verified-interop assessment. Not a formal EUDI certification — that requires the official conformance body.