Build an ISO/IEC 18013-5 mDL verifier that establishes device engagement with a holder's wallet via QR code or NFC and retrieves selected identity data over BLE
domain: iso.org · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Generate a device engagement payload (QR code for cross-device, or NFC tap for proximity) advertising supported transports and ephemeral key material
Have the holder's wallet app scan the QR code or tap NFC to establish the engagement and negotiate a transport (typically BLE)
Perform session establishment and encrypt communication using the ephemeral keys exchanged during engagement
Send a data request naming only the specific mDL data elements needed (e.g., age-over-21, portrait) rather than requesting the full document
Receive the signed mdoc response (CBOR/COSE-encoded) and verify the issuer's signature before trusting the returned data elements
For a server-side/online reader (no local Bluetooth), use the ISO/IEC 18013-7 Annex A REST API pattern to request and retrieve the credential instead of a direct BLE session
Known gotchas
mDL presentation is selective-disclosure by design — requesting more data elements than necessary is both a privacy anti-pattern and increases user consent friction
The BLE-based in-person flow (18013-5) and the online/remote flow (18013-7) use different transport and trust assumptions; a verifier built for one will not work unmodified for the other
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?