Skip to main content

mdoc

An mdoc is a mobile document in the ISO/IEC 18013-5 format: a credential held on a phone as compact, issuer-signed data elements that a reader can verify on the spot, including when neither side has a network connection.

The format grew out of the mobile driving licence, ISO/IEC 18013-5's original use case, and was then generalised so an mdoc can carry any set of attributes, not only licence data. Its data elements are encoded in CBOR and covered by a Mobile Security Object, a COSE-signed structure listing a salted hash for every element: the issuer signs those hashes rather than the values themselves, which is what lets the holder release individual attributes and no more without invalidating the signature over the rest. The credential is bound to a private key held on the device, so during presentation the reader can tell the holder is presenting it live rather than replaying a copy someone else captured earlier. In person, the exchange starts when the holder shows a QR code or taps an NFC tag containing a device engagement message, after which the actual attributes move over Bluetooth Low Energy directly between the two devices with no server involved. ISO/IEC 18013-7 extends the same credential to online use, where a website relies on the same COSE-signed data instead of a fresh in-person Bluetooth session. The EUDI ARF names mdoc alongside SD-JWT VC as a format every wallet, issuer and verifier must be able to handle, so the two formats coexist rather than one replacing the other, and a wallet typically holds both an mdoc and an SD-JWT VC copy of the same PID or attestation to work with readers built for either.

Does presenting an mdoc always require an internet connection?

No. In person, an mdoc reader and a holder's device exchange data directly over Bluetooth Low Energy or NFC after the holder shows a QR code or taps the reader, with no server or network involved. ISO/IEC 18013-7 adds an online variant for website use, but the original in-person flow, the mobile driving licence's core use case, was designed specifically to work with both devices offline.

Back to the glossary