Guide

Digital ID 101

Learn Digital ID · Concepts, then ISO/IEC 18013-5 in depth

A PDF or photo of an ID against a verifiable credential. The PDF can be edited in any image editor, and a verifier has nothing to check it against. The credential is sealed with the issuer's digital signature, which proves three things: who issued it, who it was issued to, and that not one byte has changed since.

How to read this

It runs in order, from nothing to a working mental model. If you are new to digital credentials, start at the top and read through - each part assumes the one before it. If you already know the ground, the parts are self-contained enough to jump between, and the glossary at the end covers every acronym on the page.

Foundations

Foundations and core concepts

The three compartments the W3C data model defines. Metadata: information about the credential itself - the issuer ID, the date of issuance and the expiration date. Claims: the data being asserted, such as a name and a degree. Proofs: the cryptographic signatures that bind the claims to the issuer and to the holder.

A credential is sealed; a PDF is not

The key difference is cryptographic proof. A PDF or a photo of an ID can be easily photoshopped. A VC, however, is sealed with a digital signature from the Issuer. This signature mathematically guarantees three things: who issued it, to whom it was issued, and that the data has not been altered by a single pixel or byte since it was created.

Self-sovereign identity keeps the data on your device

SSI is an identity model where the individual is the ultimate owner and controller of their personal data. Instead of your data sitting in a central database owned by Facebook, a bank, or the government, your data lives securely on your own device. You decide exactly who gets to see it, when, and for how long.

Decentralized identifiers need nobody's permission

DIDs are globally unique strings of letters and numbers (like a URL) that identify a person, organization, or thing. Unlike a domain name (which requires ICANN) or an email address (which requires Google or Microsoft), a DID is generated mathematically by the user's software. It is anchored to a decentralized network (like a blockchain), meaning no single company or government can delete or control your identifier.

A wallet holds keys and credentials, not money

In this ecosystem, a Digital Wallet is a secure software application (usually on a smartphone). It does not hold money. Instead, it securely stores your private cryptographic keys, your DIDs, and your Verifiable Credentials. It also acts as the interface you use to accept new credentials and approve requests to share them.

Self-asserted profiles against third-party proof

A social media bio is self-asserted - you can type that you are a Harvard graduate and an astronaut, but there is no proof. A Verifiable Credential is third-party verified - it is issued by an authoritative source (like Harvard University itself) using cryptographic signatures, making the claim mathematically provable.

Federated identity phones home; decentralized identity does not

  • Federated Identity (e.g., "Sign in with Google" or Okta): You use a central middleman to verify you. The middleman knows exactly which websites you are logging into, creating a privacy issue known as the "phone-home" problem.
  • Decentralized Identity: There is no middleman. You present your proof directly to the website (the Verifier). The Issuer who gave you the credential has no idea where or when you are using it.

Portability comes from open standards

Portability relies heavily on open standards and interoperability. Because VCs are built on universal W3C standards rather than proprietary tech, a credential issued by a university in Japan can be stored in a digital wallet built by a startup in Germany, and instantly verified by an employer in Canada.

The W3C data model: metadata, claims, proofs

The W3C defines a VC as a standardized data format (usually JSON or JSON-LD) containing three specific compartments:

  • Metadata: Information about the credential itself (Issuer ID, date of issuance, expiration date).
  • Claims: The actual data being asserted (e.g., Name: John Doe, Degree: B.S. Computer Science).
  • Proofs: The cryptographic signatures that bind the claims to the Issuer and the Holder.

A DID document carries the public keys

When a system looks up a DID, it gets a DID Document - a simple file containing the Public Keys of the DID owner and Service Endpoints (secure routing addresses). This allows anyone to verify a signature made by that DID or send them a secure, encrypted message.

Granular consent, and the data minimization behind it

In traditional systems, you often hand over your entire ID just to prove you are over 21. Digital credentials use Selective Disclosure to ensure data minimization. Granular consent means the user's wallet will explicitly ask: "The bouncer only needs proof you are over 21. Do you consent to share just this one specific fact?"

Architecture

The trust triangle: issuer, holder, verifier

The trust triangle. The issuer creates a credential, signs it cryptographically and sends it to the holder. The holder stores it in a digital wallet and decides whether to present it. The verifier requests a proof from the holder and checks the signature. Underneath, the verifiable data registry holds the issuer's public keys, schemas and revocation lists - the issuer publishes to it and the verifier reads from it, so the verifier never has to contact the issuer. It holds no personal data.

Issuer, holder and verifier

  • Issuer: Creates the credential, signs it cryptographically, and gives it to the Holder.
  • Holder (User): Stores the credential in their digital wallet. When a service asks for proof, the Holder decides whether to share it.
  • Verifier: Requests the proof from the Holder. Upon receiving it, checks the cryptographic signature against the Verifiable Data Registry to ensure it is authentic.

What an issuer does when it mints a credential

First, the Issuer verifies the real-world identity of the subject. Then, the Issuer formats the data into a standardized credential (like a JSON file), generates a cryptographic hash of that data, and encrypts the hash using their Private Key. This creates the digital signature. Finally, they transmit the signed credential securely to the Holder's wallet.

A verifier checks the signature, not the issuer

The Verifier looks up the Issuer's DID on the Verifiable Data Registry to find the Issuer's Public Key. By applying the Public Key to the credential's digital signature, the Verifier can mathematically prove that the credential was created by that specific Issuer and hasn't been tampered with - all without making a phone call or API ping to the Issuer.

The registry is a phonebook, not a database

The Registry acts as the decentralized "phonebook" and anchor of trust. It does not store user data or credentials. Instead, it stores public identifiers (DID Documents containing Public Keys), public schemas (data formats), and revocation registries - allowing Verifiers to independently look up the cryptographic keys needed to verify credentials.

Edge agents: the wallet on the phone

An "Edge Agent" is software running on the user's smartphone (their digital wallet). It stores credentials locally in the device's secure storage, manages the user's private keys (often using the phone's Secure Enclave), and provides the user interface where the Holder reviews and approves requests to present their data to Verifiers.

Direct and proxied presentations

  • Direct Presentation: The Holder sends the credential directly from their own edge device (smartphone) to the Verifier over a secure connection.
  • Proxied Presentation: The Holder delegates the task to a representative service (like an enterprise server or a cloud wallet) to present the credential on their behalf.

Cloud agents, for users who would rather not hold keys

Cloud Agents run on remote servers rather than local devices. They offer high availability (always online) and easier account recovery if a user loses their phone. They manage the keys and routing on behalf of the user, though this requires the user to trust the cloud provider (a semi-custodial or custodial model).

Verification survives the registry going offline

If the registry goes down, Verifiers cannot look up new Issuers' Public Keys or check the absolute latest revocation status. However, if a Verifier has previously cached the Issuer's DID Document (Public Key), they can still cryptographically verify the credential perfectly offline. The core math doesn't rely on real-time internet access to function.

DIDComm encrypts the channel between actors

DIDComm uses the public/private keys associated with the actors' DIDs to create mutually authenticated, end-to-end encrypted communication channels. When a Holder and a Verifier connect via DIDComm, they can exchange credentials knowing absolutely no one - not even the network provider - can intercept or read the data in transit.

A presentation request names the exact fields

A Presentation Request is a machine-readable message sent by the Verifier to the Holder's wallet. Using protocols like Presentation Exchange, the request specifies exactly what the Verifier needs - for example: "I need a credential issued by the Department of Motor Vehicles, and I only need the 'over_18' attribute to be true." The wallet reads this and prompts the user for consent to share exactly that.

In the field

Where digital credentials are already used

Ten sectors running one pattern - issue once, hold on the device, verify anywhere. Hiring verifies degrees in milliseconds. Banking proves KYC once. Driving puts an mDL on a phone that works with no signal. Healthcare issues records that travel with the patient. Supply chains issue product passports. Enterprise IT replaces twenty logins with one badge. Travel clears a passenger before boarding. Devices prove their own origin. Voting is promising and unsettled. Gaming makes achievements portable.

Hiring: a degree verified in milliseconds

Currently, employers hire third-party background check companies that spend weeks calling university registrars to confirm a candidate's degree. With Verifiable Credentials, the candidate simply presents a digital diploma from their wallet. The employer's software mathematically verifies the university's signature in milliseconds, instantly eliminating diploma mills and fraud while drastically speeding up the hiring timeline.

Banking: KYC proved once, reused everywhere

KYC traditionally requires users to repeatedly scan physical passports and utility bills for every new bank they join. With digital credentials, a trusted entity (like a government or a heavily regulated anchor bank) issues a "Verified Person" credential. The user presents this to any new financial institution for instant, mathematically proven compliance data - without that institution needing to store vulnerable honeypots of raw passport images.

Driving: an mDL that works with no signal

While W3C VCs were heavily designed for web-based interactions, mDLs (governed by ISO 18013-5) were specifically designed for in-person, offline scenarios like a traffic stop or TSA checkpoint. They rely on direct device-to-device communication (using NFC, Bluetooth, or QR codes) so a police officer's device can securely request and verify your license data even if neither of you has cell service.

Healthcare: records that travel with the patient

The widespread rollout of SMART Health Cards for COVID-19 vaccinations proved this model globally. Using digital credentials, a hospital can issue a verifiable prescription, allergy list, or test result directly to a patient's wallet. The patient can then travel to a completely different hospital network in another country and securely prove their medical history without requiring complex, expensive backend integrations between the two hospital IT systems.

Supply chain: a digital product passport

This is often called a "Digital Product Passport." Instead of just people, physical goods (like a batch of fair-trade coffee beans or a luxury handbag) are assigned a DID. As the product moves from farm to factory to shipping container, inspectors issue credentials verifying its status at each step. A consumer or customs agent can scan the final product and cryptographically verify its entire journey and ethical origin without trusting a single centralized database.

Enterprise IT: one badge instead of twenty passwords

Enter "Bring Your Own Identity" (BYOI). When hired, an employee receives a digital "Employee Badge" credential in their wallet. Instead of creating and memorizing 20 different passwords for Slack, VPNs, HR portals, and physical door readers, the employee uses their credential to instantly authenticate across all systems. If they leave the company, IT simply revokes the single credential, instantly cutting off access everywhere.

Travel: pre-verified before the plane boards

Initiatives like the Known Traveler Digital Identity (KTDI) aim to replace the friction of physical passport control. A traveler can package their digital passport, visa, and flight ticket into a presentation and share it securely with the destination country's customs agency before they even board the plane. Customs pre-verifies the cryptographics, allowing the traveler to walk through seamless biometric corridors upon arrival.

IoT: machines that prove their own manufacture

Machines need identities too. A smart energy meter, for example, can be assigned a digital wallet and a DID at the factory, containing a credential that proves it was built by a certified manufacturer. Before the central power grid allows that meter to connect, it challenges the meter to present its credential - instantly thwarting hackers trying to connect counterfeit, malicious devices to the network.

Voting: the benefit, and the coercion risk

  • Benefits: Using Zero-Knowledge Proofs, a citizen could cryptographically prove they are registered to vote and that they cast exactly one ballot, without revealing who they voted for, making the election both highly secure and perfectly verifiable.
  • Risks: Remote digital voting introduces the risk of coercion (a bad actor demanding a voter choose a certain way) and malware (a compromised smartphone altering the vote locally before it is sent).

Gaming: achievements that leave the game

Right now, your reputation and assets are locked within specific games - your World of Warcraft achievements mean nothing in Fortnite. With decentralized identity, a player could earn a Verifiable Credential representing a rare digital item, an e-sports ranking, or a verified age check. They carry this credential in their personal wallet and can plug it into entirely unaffiliated virtual worlds, making digital achievements truly portable.

How the trust is made

The cryptography underneath

A credential holding ten fields, of which a verifier asking to confirm someone is over 21 receives one. Selective disclosure reveals the single field and keeps the other nine hidden, while the verifier can still check the issuer's signature over the whole original document. A zero-knowledge proof goes further and returns only true or false, so the date of birth itself is never sent.

Signatures prove nothing changed in transit

When an Issuer creates a credential, they run the data through a mathematical algorithm to create a hash (a unique digital fingerprint). The Issuer encrypts this hash using their Private Key, creating a digital signature. When the Verifier receives the credential, they use the Issuer's Public Key to decrypt the hash, then re-hash the received data. If the two hashes match exactly, it mathematically proves that not a single character of the data was altered in transit.

Selective disclosure reveals one field out of ten

Selective Disclosure is a privacy feature powered by advanced cryptography (like BBS+ signatures). It allows a Holder to take a credential that contains 10 pieces of data and only reveal 1 piece to a Verifier. Crucially, the Verifier can still mathematically verify that the Issuer signed the entire original document, without ever seeing the other 9 hidden fields.

Zero-knowledge proofs reveal none at all

ZKPs allow you to prove that a specific statement is true without revealing the data that makes it true. For example, if a bouncer needs to know you are over 18, a ZKP allows your wallet to mathematically prove to the bouncer's system that your date of birth is greater than the required threshold, yielding a True or False result - without the Verifier ever learning your actual birth date.

Pairwise DIDs break linkability

If you use the exact same DID to log into your bank, your healthcare provider, and a retail store, those companies could collude to track your activity across the web - this is "linkability." Pairwise DIDs solve this: your wallet automatically creates a brand-new, unique DID for every single relationship. The bank sees DID "A", the store sees DID "B", making cross-profile correlation impossible.

Revoking a credential without naming its holder

Issuers cannot publish a public list of names whose credentials have been revoked, as that violates privacy. Instead, systems use privacy-preserving mechanisms like Status Lists or Cryptographic Accumulators - complex mathematical lists of anonymous, randomized numbers representing credentials. A Verifier can check if a credential's anonymous number is on the "revoked" list without learning anything about who owns the credential.

Hardware enclaves make private keys unextractable

The Secure Enclave is a dedicated, physically isolated chip inside a smartphone. When your digital wallet generates your private cryptographic keys, they are created inside this chip and physically cannot be extracted or copied by the operating system or other apps. When your wallet needs to sign a credential presentation, the data is sent into the enclave, signed, and sent back out.

Why personal data never goes on the chain

Blockchains are immutable - data written to them can never be deleted. If you put PII on a blockchain, it is permanently exposed, fundamentally violating privacy laws like the GDPR's "Right to be Forgotten." Verifiable Credentials avoid this by storing all PII entirely off-chain in your local digital wallet. Only the public, non-identifying cryptographic keys (DIDs) are anchored to the blockchain.

Cryptographic accumulators, as one bucket

Think of an accumulator as a mathematical "bucket" into which an Issuer can add values (representing active credentials). A Verifier can run a calculation to prove whether a specific value is currently inside the bucket. If an Issuer revokes a credential, they simply recalculate the bucket's total value without that credential. The Verifier checks the new bucket value, sees the credential is no longer included, and knows it is revoked - all without anyone seeing the bucket's contents.

A copied wallet is a useless wallet

Because the private keys are locked inside the device's hardware Secure Enclave, a hacker cannot simply copy the wallet files and paste them onto a new phone. The copied wallet would lack the private keys necessary to prove ownership of the credentials or sign any presentation requests, rendering the copied data useless.

Biometric binding ties the credential to a person

Through Biometric Binding, credentials are locked so that the hardware Secure Enclave will absolutely refuse to sign a presentation proof unless it receives a fresh, successful biometric authentication (like FaceID or fingerprint scan) from the authorized owner at the exact moment of the transaction. This ensures you can't simply hand your phone to a friend to use your digital ID.

One real credential, end to end

The same ideas made concrete in the mobile driving licence, and the mdoc format ISO/IEC 18013-5 defines for it: who is involved, what is inside one, why it can be trusted, how it is shown, what it reveals, and how it is kept alive.

ISO/IEC 18013-5

What a mobile ID is

A plastic card against a mobile ID. The card relies on visual security - holograms, guilloches, microtext and laser engraving - and carries three weaknesses: it over-discloses, because showing it to prove you are over 18 also reveals name, address, date of birth and document number; it is weak remotely, because a scan or a selfie-with-card is easy to forge; and the check is manual, depending on the training and attention of whoever is looking. The mobile ID replaces visual trust with cryptographic trust: the reader confirms the data was signed by a recognised issuer, has not been altered, belongs to the device presenting it, and has not expired.

A signed copy of identity data, held on a phone

Not a photo of a card, and not a link to a database

A mobile ID is a digitally signed copy of identity data, issued by a trusted organisation - a government agency, or an employer, university, bank or other private body - stored in a secure app on the holder's phone. The verifier checks the signature on the data itself.

ISO/IEC 18013-5, published in 2021, is the international standard that makes this work across issuers, wallets and readers.

From plastic to phone

Visual trust replaced by cryptographic trust

Physical ID cards rely on visual security features: holograms, guilloches, microtext and laser engraving. These work well face to face, but they share three weaknesses.

Over-disclosure
Showing a card to prove you are over 18 also reveals your name, address, date of birth and document number.
Weak remote use
A scanned card or selfie-with-card is easy to forge and hard to verify online.
Manual checks
Inspection depends on the training and attention of the person looking at the card.

A mobile ID replaces visual trust with cryptographic trust. The verifier's reader confirms that the data was signed by a recognised issuer, has not been altered, belongs to the device presenting it, and has not expired. The holder can share only the data elements a transaction needs.

mDL, mID and mdoc

Three terms that are constantly confused

TermMeaning
mdocThe generic credential format and protocol defined in ISO/IEC 18013-5: a CBOR data structure plus issuer signature, device key and presentation rules. Any document type can use it.
mDLMobile driving licence: an mdoc whose document type is org.iso.18013.5.1.mDL, with data elements mirroring the physical licence (ISO/IEC 18013-1).
mID / mobile eIDA national ID, residence permit, PID or other identity document issued as an mdoc with its own document type and namespace. ISO/IEC 23220 and regional frameworks such as the EU Digital Identity Wallet build on this.

One set of machinery, many document types

In practice, 18013-5 became the template for mobile identity in general. A ministry issuing a national mobile ID can reuse the same engagement, transport, security and verification machinery as an mDL, changing only the data elements.

Who can issue a mobile ID

Anyone - the standard defines a format, not a membership list

Any organisation can issue an mdoc; ISO/IEC 18013-5 defines a format and protocol, not who is allowed to use it. Only the mDL itself, with its org.iso.18013.5.1.mDL docType, is reserved for driving licence authorities.

Issuer typeExample credentials
GovernmentDriving licence, national ID, residence permit, voter or social security card, EU PID
Employer or enterpriseEmployee badge for building access, contractor or visitor pass
EducationStudent ID, staff card, diploma or certificate
Financial and commercialBank-verified KYC credential, loyalty or membership card, age credential from a retailer
Health and sector bodiesHealth insurance card, professional licence, event or travel credential

What a private issuer runs, and what differs

A private issuer runs the same IACA and Document Signer PKI and defines its own docType and namespace, for example com.example.employee.1. What differs is acceptance: a verifier will only trust the credential if it loads that issuer's certificate, and its legal weight comes from the issuer's standing, not from the standard.

What a mobile ID is not

Not a database lookup
Verification works offline. The reader does not need to contact the issuer at the time of the transaction, and the issuer does not learn where the credential was used.
Not a QR code of data
A QR code in 18013-5 only starts the session. The data itself travels over an encrypted channel such as Bluetooth Low Energy (BLE) or NFC.
Not tied to one wallet
Any compliant wallet and any compliant reader should interoperate, provided the reader trusts the issuer's certificate.
ISO/IEC 18013-5

Roles in the ecosystem

Trust flows from issuer to verifier without the issuer seeing each use. The issuing authority proofs identity, signs Mobile Security Objects, and holds the IACA root and Document Signer keys. It publishes IACA certificates to a trust list or VICAL - AAMVA Digital Trust Service, EU trusted lists - which the reader loads as trust anchors. Separately, provisioning delivers signed MSOs to the holder and phone, where device keys sit in secure hardware and the holder approves every disclosure. At presentation the phone sends the encrypted, holder-approved response straight to the mdoc reader, which validates the chain to a trusted IACA. The issuer is not contacted.

Four parties, and a trust list behind them

Four parties make a mobile ID work: the issuing authority, the holder with their phone, the verifier with an mdoc reader, and a trust list that tells verifiers which issuers to believe. The issuer and verifier never talk to each other during a transaction.

Trust is established once, ahead of time, through the issuer's certificates; each presentation then happens directly between phone and reader.

Who does what

RoleTypical ownerResponsibilities
Issuing authorityGovernment agencies (licensing, interior, national ID) or private organisations (employers, universities, banks, membership bodies)Proofs the holder's identity, defines data elements, runs the IACA and Document Signer PKI, signs and refreshes MSOs, handles revocation
HolderThe citizen or residentInstalls the wallet, enrols, unlocks the phone, decides what to share in each transaction
mdoc (wallet app)Government app, platform wallet (Apple, Google, Samsung) or third-party walletStores credentials, protects device keys in secure hardware, runs engagement, transport and consent screens
mdoc readerPolice, retailers, airports, banks, hotels, online servicesRequests the minimum data needed, verifies issuer and device signatures, checks validity
Trust list operatorAAMVA, the EU, a national scheme or the issuer itselfCollects, vets and publishes issuer certificates so readers can trust many issuers

Trust distribution: IACA lists and VICAL

Handing out certificates one by one does not scale

A reader can only verify an mDL if it already holds the issuer's IACA certificate. With dozens of issuers, distributing these one by one does not scale. 18013-5 therefore describes a VICAL (Verified Issuer Certificate Authority List): a signed list of trusted IACA certificates published by a trusted operator.

In North America, AAMVA's Digital Trust Service publishes a VICAL covering participating jurisdictions. In the EU, the wallet framework relies on trusted lists published under eIDAS. National programmes typically publish their own list or contribute to a regional one. Private issuers share their IACA certificates directly with the verifiers they work with, or through an industry trust framework.

Readers should refresh their trust anchors automatically, because new issuers join and certificates rotate.

ISO/IEC 18013-5

The mdoc data model

The structure of an mdoc. A document type such as org.iso.18013.5.1.mDL contains namespaces, which group data elements by who defined them. Every element is wrapped in an IssuerSignedItem carrying a digest ID, a random salt, the identifier and the value, and each wrapped item is hashed separately - the salt is what stops a verifier guessing an undisclosed low-entropy value by hashing candidates. The Mobile Security Object, a COSE_Sign1 signed by the issuer's Document Signer key, holds the digest of every item, the digest algorithm, the device public key that binds the credential to one phone, the docType and the validity window. Undisclosed elements are simply absent; their digests stay in the MSO and reveal nothing.

Salted elements, and one object that vouches for all of them

An mdoc is a CBOR-encoded bundle of individually salted data elements plus one issuer-signed object, the Mobile Security Object (MSO), that vouches for all of them. This design is what makes selective disclosure possible: the holder can release any subset of elements and the signature still verifies.

Encoding: CBOR and COSE

Binary, not JSON

18013-5 uses CBOR (Concise Binary Object Representation, RFC 8949) instead of JSON. CBOR is compact, binary-safe for portraits and biometric templates, and deterministic enough to hash reliably. Signatures and MACs use COSE (CBOR Object Signing and Encryption, RFC 9052), the CBOR counterpart of JOSE.

Document type, namespaces and data elements

Every mdoc is organised in three levels

  1. Document type (docType). Identifies what kind of document it is, for example org.iso.18013.5.1.mDL.
  2. Namespaces. Group data elements by who defined them. The ISO namespace for the mDL is org.iso.18013.5.1. Jurisdictions add their own, such as org.iso.18013.5.1.aamva in North America, or a national namespace for local fields.
  3. Data elements. Individual attributes, each with an identifier and a value: family_name, birth_date, portrait, driving_privileges.

What the ISO mDL namespace defines

A mandatory core, and a larger optional set

A national mobile ID uses the same structure with its own docType and elements; the EU PID, for example, uses eu.europa.ec.eudi.pid.1.

CategoryExample data elements
Mandatoryfamily_name, given_name, birth_date, issue_date, expiry_date, issuing_country, issuing_authority, document_number, portrait, driving_privileges, un_distinguishing_sign
Age attestations (optional)age_over_18, age_over_21 and other age_over_NN values, age_in_years, age_birth_year
Personal details (optional)nationality, resident_address, resident_city, resident_country, sex, height, weight, eye_colour, hair_colour, birth_place
Document and biometric (optional)administrative_number, portrait_capture_date, signature_usual_mark, biometric_template_xx

Issuer-signed items, and why the salt matters

Each data element is wrapped in an IssuerSignedItem containing four fields: a digest ID, a random salt, the element identifier and the element value. The issuer hashes each wrapped item separately.

The random salt stops a verifier from guessing undisclosed values by hashing candidates, which matters for low-entropy fields like birth dates or age_over_18 = true.

The Mobile Security Object

A COSE_Sign1 signed by the Document Signer key

The MSO is the heart of the credential. It contains:

valueDigests
The hash of every IssuerSignedItem, grouped by namespace and keyed by digest ID.
digestAlgorithm
Typically SHA-256.
deviceKeyInfo
The public key of the key pair held in the phone's secure hardware. This binds the credential to one device.
docType
The document type the MSO covers.
validityInfo
When the MSO was signed, valid-from and valid-until timestamps, and optionally when the issuer expects to refresh it.

What a verifier does with it

When a verifier receives disclosed elements, it hashes each one, looks up the matching digest in the MSO, and checks the issuer's signature over the MSO. Elements the holder chose not to share are simply absent. Their digests remain in the MSO but reveal nothing.

What a response looks like

Two proofs, answering two different questions

A reader receives a DeviceResponse containing one or more documents. Each document carries two parts: IssuerSigned (the disclosed IssuerSignedItems plus the MSO and the issuer's certificate chain) and DeviceSigned (a signature or MAC produced live by the device key over the session).

The first proves the data is genuine. The second proves the phone presenting it is the phone it was issued to.

ISO/IEC 18013-5

Security architecture

Four independent protections, each answering a different question. Issuer data authentication asks whether a recognised issuer signed this data and it is unchanged, protecting against forged or edited data; mandatory. Device authentication asks whether this is the phone the credential was issued to, protecting against copied or replayed credentials; mandatory. Session encryption asks whether anyone nearby can read or alter the exchange, protecting against eavesdropping and man-in-the-middle; mandatory. Reader authentication asks whether this reader is who it claims to be and is allowed to ask, protecting against rogue readers and over-collection; optional in the 2021 edition.

Four independent protections

18013-5 layers four protections, each answering a different question a verifier or holder might ask. A presentation is trusted only when all mandatory checks pass.

MechanismQuestion it answersProtects againstRequired?
Issuer data authenticationDid a recognised issuer sign this data, and is it unchanged?Forged or edited dataMandatory
mdoc (device) authenticationIs this the phone the credential was issued to?Copied or replayed credentialsMandatory
Session encryptionCan anyone nearby read or alter the exchange?Eavesdropping, man-in-the-middleMandatory
mdoc reader authenticationIs this reader who it claims to be, and allowed to ask?Rogue readers, over-collectionOptional

Issuer data authentication

A two-level PKI, rooted in the IACA

An IACA (Issuing Authority Certificate Authority) root certificate is the trust anchor for that issuer. The IACA signs one or more Document Signer (DS) certificates, and DS keys sign MSOs. The verifier checks the chain from the MSO signature up to an IACA certificate it already trusts, then checks each disclosed element's digest against the MSO.

IACA keys are long-lived and should be kept offline in an HSM. DS keys sign high volumes and are rotated more often. Supported signature algorithms include ECDSA on P-256, P-384 and P-521 curves, brainpool curves, and EdDSA.

mdoc authentication

The device proves it holds a key that never left the hardware

During provisioning, the wallet generates a key pair inside the phone's secure hardware (Secure Enclave, StrongBox, a secure element or a TEE). The public key goes into the MSO's deviceKeyInfo. At presentation, the device proves it holds the private key in one of two ways.

DeviceSignature
An ECDSA or EdDSA signature over the session transcript.
DeviceMac
A MAC derived from an ECDH agreement between the device key and the reader's ephemeral key. This is the more privacy-preserving option, because the reader cannot show the result to a third party as proof of the transaction.

Because the proof covers the session transcript, a recorded response cannot be replayed in another session. Because the private key never leaves secure hardware, copying the credential's data to another phone does not copy the ability to present it.

Session encryption

Fresh ephemeral keys on both sides, every session

Both sides generate fresh ephemeral key pairs per session: EDeviceKey from the phone, EReaderKey from the reader. An ECDH agreement plus HKDF derives two session keys, one per direction, and all messages are encrypted with AES-256-GCM.

The keys are bound to a SessionTranscript that includes the device engagement and reader key, which defeats attempts to splice a different reader into the conversation.

mdoc reader authentication

Optional in 2021, expected in practice

A reader can sign its request with a reader certificate issued by a reader CA. The wallet can then show the holder who is asking - "Metro Police Department" rather than an anonymous device - and can apply policy, such as releasing a home address only to authorised readers.

Reader authentication is optional in the 2021 edition, but many deployments and the EU wallet framework treat verifier authentication as expected practice.

Holder authentication on the phone

The standard assumes the wallet protects access with device-level user authentication, such as biometrics or a PIN, before releasing data. The verifier can additionally compare the live person with the disclosed portrait, exactly as with a physical card.

ISO/IEC 18013-5

How a proximity presentation works

Data leaves the phone only after the holder approves, encrypted end to end. Step one, device engagement: a QR code or NFC tap carries the phone's ephemeral key and supported transports, and no personal data. Step two, the reader sets up the session and sends an encrypted element request over BLE, NFC or Wi-Fi Aware. Step three, holder consent: the wallet shows who is asking and what they want, and the holder unlocks. Step four, the DeviceResponse carries the IssuerSigned data and the DeviceSigned proof. Step five, the reader verifies the issuer chain, the digests and the device proof. Step six, the session closes and the ephemeral keys are discarded.

Six steps, a few seconds, no network

A typical in-person presentation takes a few seconds and six steps, with no network connection needed on either side. The QR code or NFC tap only starts the session; the identity data itself travels later, encrypted.

The holder's approval in step three is the gate: nothing personal crosses the channel before it.

Step by step

  1. Device engagement. The holder opens the wallet and either shows a QR code or taps the phone on the reader's NFC antenna. The engagement structure carries the phone's ephemeral public key (EDeviceKey), the supported transports and connection details. No personal data is in it. Reader engagement, where the reader displays the code and the phone scans it, is also defined.
  2. Session set-up and request. The reader connects over the chosen transport (BLE, NFC or Wi-Fi Aware), generates its own ephemeral key (EReaderKey), and derives the session keys. It sends an encrypted DeviceRequest listing the docType, the data elements wanted and the IntentToRetain flag for each. If reader authentication is used, the request is signed with the reader's certificate.
  3. Holder consent. The wallet shows who is asking (when the reader is authenticated), which elements are requested and whether they will be stored. The holder approves all, some or none, and unlocks with a biometric or PIN. Wallets may pre-approve low-risk requests by policy, but the holder stays in control.
  4. Response. The wallet builds an encrypted DeviceResponse with only the approved elements, the MSO, the issuer's certificate and a fresh device signature or MAC over the session transcript.
  5. Verification. The reader checks the Document Signer certificate chains to a trusted IACA, verifies the MSO signature, recomputes each element's digest and compares it with the MSO, checks the device proof against the device key in the MSO, and confirms the MSO is within its validity window. It then displays the result, typically with the portrait for a face comparison.
  6. Session close. Either side ends the session. Ephemeral keys are discarded, so a captured transcript cannot be decrypted or replayed later.

Engagement and transport options

Phone platforms differ in what they expose to wallet apps

A well-designed reader supports QR and NFC engagement plus BLE and NFC transport.

OptionUsed forNotes
QR codeEngagementWorks with any reader camera; phone screen must be readable
NFCEngagement and transportTap-and-go; needs NFC reader hardware and phone NFC access
BLETransportMost common data channel; handles large portraits; two modes (phone as central or peripheral)
Wi-Fi AwareTransportHigher bandwidth; less widely supported on phones
ISO/IEC 18013-5

Beyond proximity: online presentation

Proximity against online presentation. In proximity, under 18013-5, the setting is a traffic stop, a retail age check, an airport or a bank branch; neither side needs connectivity; engagement is a QR code or an NFC tap; transport is BLE, NFC or Wi-Fi Aware; a human attendant compares the face; and the session is bound by ephemeral keys and the device engagement. Online, under 18013-7, OpenID4VP and the Digital Credentials API, the setting is account opening, an age-gated website or an e-government portal; the relying party needs the internet; engagement is a browser API call, a deep link or a QR code; transport is HTTPS; face matching is optional and done by the service; and the session is bound by web origin, a nonce and the verifier identity. The data format is the same mdoc DeviceResponse in both.

Same credential, different session binding

The same mdoc that works at a counter can be presented to a website or app, with the issuer signature and device binding unchanged. What changes is how the request reaches the wallet and how the response is bound to the online session instead of a BLE or NFC session.

ISO/IEC 18013-7

Unattended and remote, where nobody checks a face

18013-7 extends 18013-5 to scenarios where no human attendant checks the holder against the portrait. It defines how a relying party's server acts as the mdoc reader and how the session transcript incorporates web-origin information, so a response captured by one website cannot be reused at another. It references OpenID4VP and the Digital Credentials API as presentation channels.

OpenID for Verifiable Presentations

Format-agnostic: the same request can ask for an mdoc or an SD-JWT VC

OID4VP is an OpenID Foundation protocol for a verifier to request credentials from a wallet. Requests describe the needed credentials and claims, using DCQL (the Digital Credentials Query Language) in the 1.0 specification. The wallet returns an encrypted response containing the mdoc DeviceResponse. OID4VP is the presentation protocol adopted by the EU Digital Identity Wallet framework.

The Digital Credentials API

Wallet selection handled by the browser and the OS

The W3C Digital Credentials API gives websites a standard browser call to request a credential. The browser and operating system then show the user which wallets hold a matching credential, the user picks one, and the response goes back to the website.

This removes the need for QR-code-to-app redirects on the same device and supports cross-device flows using a phone as the wallet for a laptop browser. Major browsers and mobile operating systems began shipping support in 2025, carrying either OID4VP or an ISO mdoc request protocol.

Proximity versus online at a glance

AspectProximity (18013-5)Online (18013-7, OID4VP, DC API)
Typical settingTraffic stop, retail age check, airport, bank branchAccount opening, age-gated website, e-government portal
Connectivity neededNone for holder or readerInternet for the relying party
EngagementQR code or NFC tapBrowser API call, deep link or QR code
TransportBLE, NFC, Wi-Fi AwareHTTPS
Portrait checkHuman attendant compares faceOptional liveness or face match by the service
Session bindingEphemeral keys and device engagementWeb origin, nonce and verifier identity
Data formatmdoc DeviceResponseSame mdoc DeviceResponse

Server retrieval, and why it faded

The 2021 edition also defined server retrieval, where the reader fetches data directly from the issuer using a token from the wallet. It reintroduces issuer visibility of transactions and has seen little adoption. Most implementations focus on device retrieval, and the revised editions of the ISO standards are expected to de-emphasise it.

ISO/IEC 18013-5

Privacy by design

Five privacy mechanisms built into the protocol. Selective disclosure: the reader asks for named elements and the holder approves or declines. Age attestations: a pre-computed age_over_21 boolean, separately salted, so disclosing it reveals nothing about the exact age. Intent to retain: a per-element flag the reader must set and the wallet shows, which makes retention an accountable choice. No phone-home: the issuer is not contacted, so it cannot build a log of where a citizen showed their ID - a structural guarantee, not a policy promise. And unlinkability: batches of short-lived MSOs with fresh salts and their own device keys, one per presentation, which is an implementation choice issuers must specify rather than something the format gives for free.

A mobile ID should disclose less than a card, not more

A well-implemented mobile ID discloses less than a physical card. 18013-5 builds privacy into the protocol through five mechanisms, though some depend on how issuers and wallets implement them.

Selective disclosure

The reader names elements; the holder approves or declines

Only approved elements are sent. A bouncer checking age needs age_over_21 and portrait, not the name, address or document number. A car rental desk needs the name, driving privileges and expiry date, not the home address.

Age attestations

A boolean instead of a birth date

Instead of a birth date, the issuer can pre-compute boolean elements such as age_over_18 and age_over_21. Each one is separately salted and hashed, so disclosing age_over_21 = true reveals nothing about the exact age. Issuers choose which thresholds to include based on local law: 16, 18, 19, 21 and 65 are common.

Intent to retain

Retention becomes a visible, accountable choice

For every requested element, the reader must declare whether it intends to store the value after the transaction - the IntentToRetain flag. The wallet shows this to the holder. A reader that only displays data for a visual check should set the flag to false.

No phone-home

A structural guarantee, not a policy promise

Offline device retrieval means the issuer is not contacted during the transaction. The issuing authority therefore cannot build a log of where, when or to whom a citizen showed their ID.

Unlinkability

The one mechanism the format does not give you for free

If the same MSO, device key and salts were reused everywhere, colluding verifiers could recognise the same credential across transactions by comparing signatures or digests.

Good practice is for issuers to provision batches of short-lived MSOs, each with fresh salts and its own device key, and for wallets to use a different one per presentation. Ephemeral session keys and the DeviceMac option further reduce linkability. Unlinkability is therefore an implementation choice that issuers should specify explicitly.

Privacy responsibilities by role

RoleKey privacy responsibilities
IssuerInclude age attestations; issue batches of single-use MSOs; avoid unique identifiers in optional fields that are not needed
WalletShow who is asking, what and why; default to minimum disclosure; never release data without holder consent; keep a local transaction log for the holder
VerifierRequest only what the use case needs; set IntentToRetain honestly; use reader authentication; delete data on schedule
Regulator or schemeDefine which readers may request which elements; audit over-collection
ISO/IEC 18013-5

Lifecycle: provisioning to revocation

Five lifecycle stages. Identity proofing, which sets the assurance level of everything that follows. Device binding and provisioning, where the wallet generates keys in secure hardware and the issuer signs MSOs that embed them. Use, in proximity or online. Refresh, because MSOs expire in days or weeks rather than on the licence expiry date, which is also how the issuer pushes a changed address or an added vehicle class. And suspension, revocation and deletion, when a court suspends a licence or a phone is lost.

Where the issuer makes the most decisions

18013-5 standardises presentation, not issuance, so the lifecycle is where issuers make the most design decisions. A credential moves through five stages, each with its own security risks.

Four of the five lifecycle stages are the issuer's to design, because 18013-5 standardises only the moment of presentation. Identity proofing: the method, and the assurance level it sets - issuer decides. Device binding: key attestation, delivery and OpenID4VCI - issuer decides. Use: proximity or online, to the letter - this is the one stage ISO/IEC 18013-5 specifies. Refresh: MSO validity, batch size and cadence - issuer decides. Revocation: the status approach and the lost-device process - issuer decides.
  1. Identity proofing. The holder proves they are the rightful owner of the identity record before anything is issued. Common methods are reading the chip of an existing ID or passport, face match against the enrolment photo with liveness detection, in-person enrolment at an office, or a one-time code sent to registered contact details. This step sets the assurance level of the whole credential.
  2. Device binding and provisioning. The wallet generates device key pairs in secure hardware and sends the public keys to the issuer, ideally with a key attestation proving the keys are hardware-protected. The issuer signs MSOs that embed those keys and delivers them over an authenticated channel. OpenID4VCI is the emerging standard protocol for this step.
  3. Use. The holder presents the credential in proximity or online.
  4. Refresh. MSOs carry a valid-until date, often days or weeks, much shorter than the licence's own expiry. Before they lapse, the wallet fetches fresh MSOs, which also lets the issuer push data changes such as a new address or an added vehicle class. The optional expectedUpdate field signals when the issuer plans to refresh.
  5. Suspension, revocation and deletion. A licence may be suspended by a court, a phone may be lost, or a holder may switch devices. The issuer must stop the credential being accepted.

Revocation and status

A deliberate trade-off between freshness and privacy

Most programmes combine short-lived MSOs with remote deletion, and add a status list as specifications mature.

ApproachHow it worksTrade-off
Short-lived MSOsIssuer stops refreshing a revoked credential, so it lapses within daysSimple and private, but leaves a window of validity
Status listsIssuer publishes a compressed list of status bits; the MSO points to one index; readers cache the listNear-real-time and privacy-friendly if lists are large and cached; being standardised in the ISO revisions and by IETF (Token Status List)
Remote wipeIssuer instructs the wallet to delete the credentialDepends on the phone being online and the wallet cooperating
Online check with issuerReader queries the issuer per transactionFreshest, but breaks the no phone-home property; generally discouraged

Lost, replaced or multiple devices

Because each credential is bound to one device's keys, a new phone needs a new provisioning, usually with a lighter re-proofing step.

Issuers should decide upfront whether a holder may hold the credential on more than one device at once, how a lost device is reported, and how quickly a reported device's credential stops being refreshed.

The ecosystem around it

The specifications it sits among, the law and governance that decide whose signature is worth anything, and where deployment actually stands. All three make sense only once you know what an issuer and a verifier do.

The ecosystem

The standards landscape

The standards around a mobile ID, by what they cover. ISO/IEC 18013-5 standardises the moment of presentation between a phone and a reader. It deliberately leaves provisioning to the issuer, which OpenID4VCI fills, and remote presentation, which ISO/IEC 18013-7, OpenID4VP and the W3C Digital Credentials API fill. ISO/IEC 23220 generalises the building blocks to non-driving documents, ISO/IEC 18013-1 and -2 define the physical licence the mDL elements map to, and the AAMVA guidelines and the eIDAS 2.0 wallet framework are regional profiles on top.

18013-5 standardises one moment, not the whole deployment

ISO/IEC 18013-5 standardises the moment of presentation between a phone and a reader. It deliberately leaves provisioning - how the credential gets onto the phone - to each issuer, so a full deployment draws on several companion standards and profiles.

The companion standards

Standard or profileOwnerWhat it covers
ISO/IEC 18013-5:2021ISO/IEC JTC 1/SC 17The mDL data model, device engagement, proximity transport (BLE, NFC, Wi-Fi Aware), session encryption, issuer and device authentication, reader authentication, and the mDL data elements. A revised edition is in progress.
ISO/IEC 18013-7ISO/IEC JTC 1/SC 17Unattended and online presentation: an mdoc presented to a website or remote service, including profiles that use OpenID4VP and the browser Digital Credentials API.
ISO/IEC 23220 seriesISO/IEC JTC 1/SC 17Generic building blocks for identity on mobile devices: architecture, data model, issuance and presentation, so non-driving documents can follow the same pattern.
ISO/IEC 18013-1, -2ISO/IEC JTC 1/SC 17The physical driving licence and its machine-readable technologies. The mDL data elements map to these.
OpenID4VCI / OpenID4VPOpenID FoundationProtocols for issuing credentials to a wallet (VCI) and requesting them from a wallet (VP), supporting both mdoc and SD-JWT VC formats.
Digital Credentials APIW3CA browser and OS interface that lets a website request a credential from a wallet on the same or a nearby device.
AAMVA mDL Implementation GuidelinesAAMVA (North America)A profile of 18013-5 for US and Canadian jurisdictions, with extra data elements (namespace org.iso.18013.5.1.aamva) and the Digital Trust Service for publishing issuer certificates.
eIDAS 2.0 and the EUDI Wallet ARFEuropean CommissionThe legal and technical framework for EU Digital Identity Wallets. The Architecture and Reference Framework specifies mdoc (per 18013-5) and SD-JWT VC as credential formats, including the Person Identification Data (PID).

Why 18013-5 matters

It replaced one vendor, one reader, one jurisdiction

Before 18013-5, early mobile licence pilots were proprietary: one vendor's app, one vendor's reader, one jurisdiction. The standard gives every party a shared contract.

Issuers
Sign data once, in one format, and it works with any compliant reader.
Wallet providers
Implement one presentation protocol for licences from many issuers.
Verifiers
Buy or build one reader and trust many issuers by loading their certificates.

This is the same pattern that made ICAO 9303 ePassports interoperable worldwide, and many of the same people and design ideas carried across.

Proximity versus online

The 2021 edition of 18013-5 is primarily about proximity presentation: holder and verifier are physically together, at a traffic stop, a bar, an airport checkpoint or a bank counter.

Remote and online use, such as opening a bank account from a laptop, is addressed by 18013-7 and the OpenID and W3C work in "Beyond proximity". The data format and signatures are the same in both cases. Only the transport and session binding differ.

The ecosystem

Policy, governance and liability

A trust framework sitting above the cryptography. The cryptographic layer - signatures, keys and registries - proves who signed and that nothing changed, but cannot say whether they were trustworthy. The trust framework above it decides which issuers are accredited, what a credential is worth and who pays when it is wrong, published as machine-readable governance so a verifier can ask a registry rather than read a contract. It also distributes the liability: the issuer for proofing the person badly, the wallet provider for letting the keys be stolen, the verifier for asking or keeping too much.

Trust frameworks are the legal layer over the maths

Cryptography can mathematically prove who signed a credential, but it cannot prove if that person is trustworthy. A Trust Framework is the "legal and business layer" - a set of rules, policies, and legal agreements that dictate, for example, which universities are officially accredited to issue degrees, or which banks are liable if a KYC credential is fake. Without these legal rules, Verifiers wouldn't know which cryptographic signatures to actually trust.

eIDAS 2.0 mandates a wallet in every member state

eIDAS 2.0 is a massive legislative shift that requires every EU Member State to offer a standardized European Digital Identity (EUDI) Wallet to its citizens. It allows citizens to prove their identity and share electronic documents across all of Europe, and legally mandates that large online platforms (like Big Tech companies) and public services must accept it as a valid form of login and verification.

Fragmentation is the obstacle to global interoperability

The main challenge is fragmentation. Europe leans heavily toward OpenID protocols (OIDC4VC), North America often experiments with W3C standards (DIDs and JSON-LD), and the mobile driver's license space relies on ISO standards (mDL). For true global interoperability, a wallet needs to be able to "speak" all these different technical languages, and international laws must be aligned so a digital credential issued in Tokyo holds legal weight in Toronto.

GDPR and CCPA, by design rather than by exception

They are practically designed for it. The GDPR requires Data Minimization (sharing only what is necessary) and the Right to be Forgotten (the ability to delete your data). Because Verifiable Credentials use Selective Disclosure and store personal data locally on the user's device rather than permanently on an immutable blockchain, users have absolute control over their data.

The digital divide, and what is being built for it

The Digital Divide is the risk of excluding the elderly, the unhoused, or those in developing nations without access to expensive smartphones or reliable internet. Solutions being actively developed include:

  • Hardware Smart Cards which hold keys and act like a physical wallet.
  • Delegated Guardianship where a trusted family member or social worker manages credentials on someone's behalf.
  • Verifiable Paper - printing a cryptographically signed QR code on physical paper.

Machine-readable governance decides trust at scale

If a hospital needs to verify 10,000 digital nurse licenses a day, humans cannot manually read legal contracts to check if the issuing medical boards are legitimate. Machine-readable governance translates Trust Frameworks into code (via Trust Registries). A Verifier's software can instantly ping an API to ask, "Is the Issuer's DID currently on the government's authorized list?" and get an automated Yes/No, processing trust at the speed of the internet.

Standards bodies keep the walled gardens out

They are the architects ensuring we don't end up with "walled gardens." If Apple, Google, and Microsoft all built proprietary digital IDs that couldn't talk to each other, the system would fail. The W3C, OpenID Foundation, and ISO create the open, royalty-free blueprints ensuring that a wallet built by a startup uses the exact same cryptographic data structures as a wallet built by a trillion-dollar tech giant.

Liability is distributed, not pooled

Generally, liability is distributed based on the Trust Framework:

  • Issuers are liable if they issue a credential based on fraudulent background checks.
  • Wallet Providers are liable if their software has vulnerabilities that allow a hacker to steal the user's private keys.
  • Verifiers are liable if they request too much data or fail to secure the data after the user presents it to them.

What a trust layer does to the digital economy

It represents a shift from "platform-centric" to "user-centric" data. Currently, companies spend billions verifying documents, managing passwords, and dealing with data breaches. By creating a missing "Trust Layer" for the internet, digital credentials will drastically lower the cost of doing business, eliminate entire categories of fraud, and allow individuals to monetize or strictly protect their own data, fundamentally changing the power dynamics of the web.

The ecosystem

Adoption and implementation

Three things that have to launch together for a mobile ID programme to work: issuance, with the credential signed and provisioned to phones; wallets, so holders have somewhere to keep it; and acceptance, so there are readers that will take it. A credential nobody accepts has no value, and readers with no credentials to read have no buyers. Under all three sits the work that is actually hard - governance, trust distribution and verifier readiness - rather than the technology, which is mature.

The technology is the easy part

Mobile IDs succeed when issuance, wallets and acceptance launch together; a credential nobody accepts has no value, and readers with no credentials to read have no buyers. The technology is mature. The harder work is governance, trust distribution and verifier readiness.

Where adoption stands

United States
A growing number of states issue mDLs, available in state apps and in Apple, Google and Samsung wallets. TSA accepts mDLs at many airport checkpoints, and AAMVA's Digital Trust Service publishes issuer certificates for verifiers.
European Union
eIDAS 2.0 requires every member state to offer at least one EU Digital Identity Wallet, with the mdoc format for PID and other credentials. The revised Driving Licence Directive introduces a digital licence across the EU.
Elsewhere
National programmes in Australia, Asia, the Middle East and Africa are adopting 18013-5 mdoc for licences and national IDs, often alongside an existing physical card and ePassport infrastructure.

Status changes quickly. Confirm current figures with the scheme operator before quoting them externally.

Checklist for issuing authorities

  • Define the docType, namespaces and data elements, including age thresholds and any national fields
  • Stand up the IACA and Document Signer PKI with HSM-backed keys and a rotation policy
  • Choose the identity proofing method and target assurance level
  • Decide the wallet strategy: government app, platform wallets, third-party wallets, or a mix
  • Set MSO validity, batch size per device and the refresh cadence
  • Choose a revocation and status approach and a lost-device process
  • Publish IACA certificates through a trust list or VICAL so verifiers can find them
  • Plan reader authentication and which verifiers may request which elements
  • Run interoperability testing with independent wallets and readers before launch
  • Update the legal basis so the mobile ID is accepted wherever the physical card is

Checklist for relying parties

  • Map each use case to the minimum data elements it needs
  • Choose a certified or tested reader: dedicated device, tablet app, or SDK in an existing app
  • Load and keep trust anchors current from the relevant trust list
  • Obtain a reader certificate if the scheme supports reader authentication
  • Set IntentToRetain correctly and align retention with data-protection law
  • Train staff on the holder flow, failure modes and fallback to physical ID

Reference

The protocol list and the glossary. Not written to be read in sequence - they are here for when a name turns up and you need to know what it is.

Protocols

The protocol landscape

The five phases the protocols fall into. Identifiers and data formats: Universal Resolver, did:web, KERI and SD-JWT. Issuance: OID4VCI, the pre-authorized code flow, OIDC4IDA and DPoP. Communication: DIDComm, the W3C Digital Credentials API and CHAPI. Presentation and verification: OID4VP, SIOPv2, RAR, Presentation Exchange, WACI and ISO 18013-5 and 18013-7. Revocation and alignment: Token Status List and HAIP.

Phase 1 - Identifiers & Core Data Formats

Universal Resolver

One API gateway in front of a hundred DID methods

There are over 100 different ways to anchor a DID. The Universal Resolver acts as a standardized API gateway. A Verifier sends any DID to the Resolver, and the Resolver acts like a router, forwarding the request to the specific protocol driver required to fetch and return that DID's public keys - without the Verifier needing to support the custom code for all 100+ DID methods.

did:web

An identity anchored to a web domain

While many DIDs rely on blockchains, did:web allows an organization to anchor its identity directly to its existing web domain (e.g., did:web:university.edu). It leverages the traditional DNS and TLS certificates for security. This makes it incredibly easy for enterprises to adopt, manage, and prove their authoritative identity without needing to interact with or pay transaction fees on a blockchain network.

KERI

Key history as signed receipts, with no ledger

KERI is a highly advanced identity protocol that completely removes the dependency on a centralized blockchain. Instead of publishing cryptographic keys to a shared ledger, KERI uses "ambient verifiability." The history of a user's key creation and key rotations is maintained in a cryptographic log. Users prove their identity by passing these cryptographically signed "receipts" directly to one another peer-to-peer.

SD-JWT

Selective disclosure for ordinary JWTs

Standard JWTs are universally used in web development but lack privacy - if you share the token, you share all the data inside it. SD-JWT adds Selective Disclosure to these traditional tokens. It is gaining massive adoption (especially in the EU's eIDAS 2.0 framework) because it allows developers to build highly privacy-preserving credentials without having to learn entirely new, complex data structures like JSON-LD.

Phase 2 - Issuance (Minting the Credential)

OID4VCI

The API an issuer uses to send a credential to a wallet

OID4VCI is a standard developed by the OpenID Foundation that defines a secure API for an Issuer to send a digital credential to a Holder's wallet. It is widely adopted because it is built on top of the heavily utilized OAuth 2.0 protocol, allowing organizations to plug verifiable credential issuance directly into the identity systems they already use (like Keycloak or Okta), drastically lowering the barrier to entry for developers.

Pre-authorized code flow

Push a credential with a QR code and no new account

Defined within the OID4VCI specification, the Pre-Authorized Code Flow is used when an Issuer already knows who the user is and wants to push a credential to them with minimal friction. The Issuer generates a unique PIN or QR code and sends it to the user. When the user opens this link with their wallet, the wallet uses the pre-authorized code to instantly download the credential - bypassing the need for the user to create a new login account with the Issuer.

OIDC4IDA

Carries how the person was verified in the first place

Before an Issuer mints a digital credential, they must verify the person in the real world. OIDC4IDA is a protocol extension that transmits the context of how a user was verified (e.g., "Verified via physical passport scan at a bank branch with high assurance"). This contextual data is embedded directly into the credential, allowing the final Verifier to judge whether the Issuer's initial background check was rigorous enough for their needs.

DPoP

Binds the access token to the wallet's private key

During standard OAuth issuance, if a hacker intercepts the user's access token, they could theoretically download the credential themselves. DPoP prevents this by legally "binding" the token to the private key held inside the user's digital wallet. When the wallet requests the credential, the Issuer's server mathematically verifies that the request was signed by the exact same private key that the token was issued to, instantly stopping token-replay attacks.

Phase 3 - Communication & Browser Integration

DIDComm

End-to-end encrypted messaging between DIDs

DIDComm (Decentralized Identifier Communication) provides a secure, private communication channel between any two entities using DIDs. Unlike standard web traffic which relies on central certificate authorities (SSL/TLS), DIDComm uses the public/private keys inherently tied to the users' DIDs to create end-to-end encrypted messaging. It is transport-agnostic, meaning it can run over HTTP, WebSockets, or even offline over Bluetooth.

W3C Digital Credentials API

Wallet selection built into the browser

Traditionally, connecting a digital wallet to a website required scanning a QR code. The W3C Digital Credentials API is a browser-level protocol that integrates digital wallets directly into the web browser's architecture. When a website requests a credential, the browser natively prompts the user to select their wallet (similar to how Apple Pay works), creating a seamless, phishing-resistant user experience.

CHAPI

The polyfill that proved browser-to-wallet worked

Before the browser-native W3C Digital Credentials API existed, CHAPI was developed as a browser polyfill protocol. It allowed websites to broadcast a request for a credential, and allowed users to register their preferred web-based wallet to "catch" and respond to those requests. It served as the vital pioneering protocol that proved wallet-to-browser interoperability was possible.

Phase 4 - Presentation & Verification

OID4VP

The request and the response for a presentation

OID4VP allows a Verifier to securely request and receive a verifiable credential from a Holder's wallet. The Verifier sends an Authorization Request to the wallet. The wallet authenticates the user, generates a presentation containing the requested credentials, and posts it back to the Verifier's secure endpoint - all without relying on a centralized identity provider.

SIOPv2

Your own wallet becomes the OpenID provider

In traditional OpenID Connect, Google or Microsoft acts as the OpenID Provider (OP) that authenticates you. SIOPv2 flips this model: your personal digital wallet becomes the OpenID Provider. When a website asks for authentication, the request goes straight to your wallet. You authenticate locally on your device, and your wallet securely passes the login token to the website, cutting out the middleman.

Rich Authorization Requests

A detailed request, instead of a scope string

In standard OAuth, a Verifier uses simple "scopes" (like scope=email) to ask for data. RAR allows the Verifier to send a highly detailed, machine-readable JSON object during the authorization flow, specifying exact credential types, required cryptographic algorithms, and specific Trust Frameworks the credential must adhere to.

Presentation Exchange

A language for saying exactly what is needed

Presentation Exchange provides a standard JSON-based language for Verifiers to write "Presentation Definitions." Instead of just asking for a "driver's license," PE allows a Verifier to programmatically request: "I need a credential issued by the California DMV, I only want the 'over_21' attribute, and it must be signed using an active ES256 cryptographic key."

WACI

The handshake that carries Presentation Exchange over DIDComm

WACI is the connective tissue between the Presentation Exchange (PE) data format and the DIDComm messaging protocol. While PE defines what data the Verifier wants, WACI-DIDComm defines the exact sequence of encrypted messages - the "handshake" - used to securely request, negotiate, and deliver that data between the Verifier and the wallet.

ISO 18013-5

Proximity presentation: NFC, Bluetooth LE, Wi-Fi Aware

ISO 18013-5 is designed for in-person scenarios without internet access (like a traffic stop). The standard specifies that device-to-device data transfer between the phone and the reader must happen via secure, localized protocols: NFC (Near Field Communication), Bluetooth Low Energy (BLE), or WiFi Aware.

ISO/IEC 18013-7

The same mDL, presented over the internet

While ISO 18013-5 handles offline, proximity-based presentations, ISO/IEC 18013-7 defines the protocols for presenting an mDL over the internet (remote presentation). It profiles existing web standards to allow a user to securely present their mobile driver's license to a website - for example, to buy age-restricted goods online.

Phase 5 - Revocation & Ecosystem Alignment

Token Status List

Revocation as a compressed bitstring

Checking if a credential is revoked must be fast and privacy-preserving. The Status List protocol represents the status of millions of credentials as simple 1s and 0s inside a highly compressed bitstring file. The Verifier downloads this tiny file, unzips it, and checks the specific index number assigned to the credential. If it's a 0, it's active; if it's a 1, it's revoked.

HAIP

The profile that makes the optional settings line up

Protocols like OID4VCI and OID4VP are highly flexible and have dozens of optional settings. If Wallet A uses one set of options and Verifier B uses another, they won't interoperate. HAIP is a strict "profile" created by the OpenID Foundation that dictates exactly which specific options, cryptographic algorithms, and security bindings must be used to achieve high-assurance security - ensuring massive ecosystems like the EU Digital Identity network work flawlessly.

Reference

Glossary

The acronyms this page uses, in one place. Most of them appear in an ISO or OpenID specification long before they appear in a product.

AAMVA
American Association of Motor Vehicle Administrators; publishes the North American mDL profile and runs the Digital Trust Service
BLE
Bluetooth Low Energy; the most common proximity transport for mdoc data
CBOR
Concise Binary Object Representation (RFC 8949); the encoding used for all mdoc structures
COSE
CBOR Object Signing and Encryption (RFC 9052); used for MSO signatures and device MACs
DCQL
Digital Credentials Query Language; the query syntax in OpenID4VP 1.0
Device engagement
The QR code or NFC exchange that starts a session and carries the wallet's ephemeral key and transport options
DeviceResponse
The CBOR message a wallet returns, containing IssuerSigned and DeviceSigned data per document
Device retrieval
Data delivered directly from the phone to the reader, offline; the main 18013-5 mode
Digital Credentials API
W3C browser API that lets websites request credentials from wallets
docType
Identifier for a document type, for example org.iso.18013.5.1.mDL
Document Signer (DS)
Issuer certificate and key used to sign MSOs; chains to the IACA
EUDI Wallet
European Digital Identity Wallet under eIDAS 2.0
IACA
Issuing Authority Certificate Authority; an issuer's root of trust for mDL signing
IntentToRetain
Per-element flag in a reader request saying whether the reader will store the value
IssuerSignedItem
One data element with its digest ID, random salt, identifier and value
mdoc
A mobile document conforming to the ISO/IEC 18013-5 data model and protocols
mdoc reader
The verifier's device or software that requests and verifies mdoc data
mDL
Mobile driving licence; an mdoc with the ISO mDL docType
MSO
Mobile Security Object; the issuer-signed structure holding element digests, device key and validity
Namespace
A grouping of data elements by defining body, for example org.iso.18013.5.1
OpenID4VCI
OpenID for Verifiable Credential Issuance; a protocol for delivering credentials to wallets
OpenID4VP
OpenID for Verifiable Presentations; a protocol for requesting credentials from wallets
PID
Person Identification Data; the core identity credential in the EU wallet framework
Reader authentication
Optional signing of the reader's request so the wallet can identify and authorise the verifier
SD-JWT VC
Selective Disclosure JWT Verifiable Credential; a JSON-based alternative credential format
Selective disclosure
Releasing only chosen data elements while keeping the issuer signature verifiable
Session transcript
Data binding the device engagement and both ephemeral keys; signed or MACed by the device
Status list
A published, compressed list of credential status bits used for revocation checks
TEE / Secure Enclave / StrongBox
Hardware-isolated environments on phones that protect device private keys
VICAL
Verified Issuer Certificate Authority List; a signed list of trusted IACA certificates
Wi-Fi Aware
Peer-to-peer Wi-Fi transport defined as an option in 18013-5
Let's issue digital IDs to your users.
Tell us your requirements & we'll setup a demo for you.