Protocol maturity

Customer release status

Queued/draft → Built but not released → Interop testing → Release candidate → Production. Product chips show where work applies; only the Production column describes released customer behavior. Automated loopback, device testing, and independent cross-vendor interoperability are reported separately.

Source: data/protocols.json

Queued / draft 2

ISO/IEC 23220-5 trust model and confidence level
Technical status

The Draft Technical Specification is still under development in the approval phase (ISO stage 50.00 as of 2026-08-27). Only a narrow CHV_1 adapter is available behind the explicit iso23220-5-draft build feature. No production route, SDK metadata or issued credential advertises draft Part 5 semantics, and the published text must be re-reviewed before promotion.

Issuance (mdl-core)

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

Future ISO 18013-7 revision (working draft)
Technical status

The production target is ISO/IEC TS 18013-7:2025. Future work is draft-only: the standards archive includes N2756, titled a third-edition draft, while core keeps an iso7-ed2nd-draft placeholder. Do not present either as current production conformance.

Core

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

Built — not released 3

SDK optional Verify API engine
Technical status

Built on the interop branches but not released in Android SDK v0.10.3, iOS SDK v0.10.2, or Verify API v0.7.7. OFFLINE remains the production default and retains complete on-device parsing, cryptography, trust, and verification. ONLINE/AUTO are opt-in and target https://api-staging.oneproof.com for future testing: QR/NFC/BLE/L2CAP/APDU transport stays native while oneproof-verify holds session keys, builds requests, and verifies responses. No API key is embedded or configured, so the preview cannot authorize protected staging traffic accidentally. Engine selection is sticky before engagement; there is no mid-session online/offline fallback. The remote result contract preserves DeviceAuth, VICAL diagnostics, revoked/not_revoked/unknown, per-document results, SD-JWT otherDocuments, HPKE encryption evidence, and detected/request editions. Device and staging deployment testing is still required before this can move to Interop testing.

Verify APIAndroid SDKiOS SDK

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

ZKP framework (2nd-ed draft)
Technical status

Event-only implementation. ISO 18013-5 edition 2 defines the ZKP carrier and negotiation but deliberately leaves each concrete ZkSystem and its parameters to a registered profile. OneProof integrates Google's pinned Longfellow examination engine for longfellow-libzk-v1, validates circuit/profile parameters, and fails closed for unsupported or malformed proofs. On 2026-08-28 the pinned Google prover output verified through OneProof and altered-proof/transcript cases failed as required. The verifier container exposes the engine only in its explicit event build; live Multipaz/other-vendor proof generation with an agreed circuit remains pending, so this is not a production or general-ZKP conformance claim.

CoreAndroid SDKiOS SDKVerify API

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

ISO/IEC TS 18013-6:2025 conformance test methods
Technical status

Edition 2 is a published test-method specification for mDL-to-reader, reader-to-mDL and optional reader-to-issuer interfaces; it is not an issuance format. The interop core maps its relevant behavior to automated negative/positive vectors and device transport tests. No accredited laboratory report or formal certification is claimed, so this remains Built rather than Production.

CoreAndroid SDKiOS SDKVerify APIWallet AndroidWallet iOSIssuance (mdl-core)

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

Interop testing 12

Direct NFC data retrieval (APDU, BLE-less)
Technical status

Shipping in LINK v0.10.2; core, both SDKs and Android wallet landed on interop branches post-tag, pending live hardware exchange (iso-rs event matrix still flags it as a gap).

CoreAndroid SDKiOS SDKWallet AndroidLINK

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

ISO 18013-5 edition 2 DIS (event profile)
Technical status

Event-only, semver-exempt implementation checked against the actual ISO/IEC DIS 18013-5 edition 2 ballot text (PDF dated 2025-11-06), with later proposals applied narrowly: N2885 NFCv2 and N2933 SD-JWT. Includes edition detection, issuer identifiers, alternative elements, use cases/document sets, multi-document requests/results, response encryption, and request views. A focused application-layer wallet-to-verifier suite passes 120 tests with no failures across the 2021, edition-2 and TS 18013-7 targets; two Annex B gaps remain explicitly ignored. oneproof-verify exposes edition-2 options through /v1/mdoc/proximity/request; Android and iOS remote engines pass the same edition policy and options used by their offline engines. The iOS holder supports automatic detection plus a single-mDL baseline and fails closed for unsupported advanced requests; the Android event holder remains the implementation for advanced wallet profiles. Reader Auto remains 2021 for ambiguous/2021 engagements and never silently downgrades a standards-significant option. Physical and independent-implementation tests remain pending. N2549/N2718 are CD lineage, not the DIS.

CoreAndroid SDKiOS SDKVerify APIWallet AndroidWallet iOS

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

NFCv2 engagement + data transfer (2nd-ed draft)
Technical status

N2885 APDU/DO53 wire; reader + Android holder on event branches. oneproof-verify now accepts exact NFCv2 HandoverSelect/HandoverRequest bytes, builds the edition-2 SessionEstablishment, and retains crypto state; both SDK remote engines are wired while APDU transport remains native. A live physical staging exchange is still pending. iOS supports verifier/reader NFCv2 only; iOS wallet tag emulation is not available.

CoreAndroid SDKiOS SDKWallet AndroidVerify API

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

Doc-response encryption (HPKE, 2nd-ed draft)
Technical status

HPKE Base P-256 request/emission/decryption paths exist. The automated wallet-to-verifier loop covers request, wallet emission, reader decryption, request-ID binding and tamper rejection. oneproof-verify generates and retains the response-encryption key for QR and NFCv2 sessions, supports latest_accepted and explicit dis_2025 transcript profiles, normalizes encryptedDocuments, and returns applied/docRequestIds evidence. Android and iOS remote engines pass options and surface the result; offline event paths remain available. A real Photo ID exchange and transport matrix remain cross-vendor/device tests.

CoreAndroid SDKiOS SDKVerify API

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

HAIP 1.0 (Annex D DC API + Annex E redirect)
Technical status

haip-vp://, signed JAR, encrypted responses. In core interop tag; verify-api, Android SDK and Android wallet facades on interop branches; not exposed on iOS. Annex D Draft 3 (N2648) in standards library.

CoreVerify APIAndroid SDKWallet Android

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

German EUDI wallet profile (eudi_de)
Technical status

HAIP-Final semantics over openid4vp://, x509_hash client-id, request_uri_method=get, DCQL-only, SD-JWT VC permitted. verify-api interop branch. German trust anchors and test-wallet access still blocked on RP onboarding.

CoreVerify API

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

SD-JWT VC (dc+sd-jwt)
Technical status

Core issuance, selective disclosure, KB-JWT verification, and event carrier parsing are implemented. N2933 proximity wire uses docFormat dc+sd-jwt plus mandatory docRequestIds and request/session-derived aud + nonce. oneproof-verify verifies otherDocuments against configured SD-JWT trust anchors, and both SDK remote result contracts preserve those reports. Android event wallet can emit single or mixed mdoc/SD-JWT responses. Live event validation remains pending; production offline behavior is unchanged.

CoreVerify APIAndroid SDKiOS SDKWallet AndroidIssuance (mdl-core)

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

OpenID4VCI issuance
Technical status

OpenID4VCI 1.0 Final is implemented on interop branches. mdl-core exposes real metadata, by-value/by-reference offers, pre-authorized and authorization-code+S256-PKCE grants, nonce, JWT proof and trusted key-attestation validation, single-use state, and bound mso_mdoc/dc+sd-jwt credential issuance. Android and iOS SDK wallet facades and both wallet apps implement byte-preserving offer import. Android on-device Geneva imports have been observed; presenting those exact stored credentials to the OneProof verifier, duplicate/default-mDL policy, deletion UX, and iOS live issuance/presentation still require recorded device tests. Optional deferred issuance, notifications, PAR and DPoP are not advertised. Production issuance and the offline production SDK default remain unchanged.

CoreAndroid SDKiOS SDKWallet AndroidWallet iOSIssuance (mdl-core)

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

ISO/IEC TS 23220-3:2026 mobile ID provisioning
Technical status

Published installation and issuance protocol. The interop issuer implements strict MCD/SAAO capability validation, dehydrated and batch IssuerSigned structures, deterministic hydration, the plaintext/encrypted exclusive choice, and Annex H HPKE identifiers. OpenID4VCI currently returns full IssuerSigned credentials, which the protocol permits; dehydrated batch issuance is not advertised. This is not yet a production endpoint claim.

CoreIssuance (mdl-core)Wallet AndroidWallet iOS

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

VICAL issuer trust lists
Technical status

Core parses and signature-verifies VICAL, validates the signer path to an explicitly supplied root, supports verify-then-swap replacement, and applies runtime IACA anchors on proximity and UniFFI paths. The newest supplied Geneva VICAL verifies against the supplied Trusted Lists Root CA and has a regression test. Verify API receipts now reach both SDK remote result contracts without changing offline behavior. Daily freshness refresh and live event testing remain required.

CoreVerify APIAndroid SDKiOS SDK

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

RICAL + reader authentication (edition-2 Annex F)
Technical status

DIS Annex F / N2718 lineage. Core signature-verifies RICAL through a bounded leaf-first signer path to an explicitly supplied root, then separately reports whether presented ReaderAuth chains to a CA in the loaded RICAL; applications must require both. The newest supplied Geneva RICAL verifies against the supplied Trusted Lists Root CA. Full RFC 5280 policy/path processing and revocation are not implied. SDK event variants and Android wallet display are wired; live cross-vendor ReaderAuth remains required.

CoreAndroid SDKiOS SDKWallet Android

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

MSO revocation (identifier list + status list)
Technical status

Core trust-verifies both identifier and status-list COSE/CWT tokens. Status-list validation binds the MSO URI to CWT subject, verifies ES256/x5chain to the Geneva IACA, requires DIS bits=1, caps ZLIB expansion, and evaluates the LSB-first index; the supplied all-valid Geneva token passes. oneproof-verify accepts one configured identifier or status token, preserves revoked/not_revoked/unknown distinctly, and both SDK remote mappers now expose the same verdict as offline. The supplied CWT omits DIS-mandatory exp, accepted only by debug/explicit event builds; ordinary production rejects it. Live server testing and multi-list/fetch/cache support remain pending.

CoreVerify APIAndroid SDKiOS SDK

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

Release candidate 0

Production 14

ISO 18013-5 QR engagement + BLE transfer
Technical status

ISO 18013-5:2021 production baseline. Reader side supports BLE central + peripheral; the Android event wallet can present as either BLE role. The deterministic wallet-to-verifier application-layer loop passes request, session encryption, IssuerAuth, DeviceAuth and disclosure checks. Mobile holders fail closed on malformed or unsupported requests before consent, signing, or disclosure. Draft request extensions remain event-only; local loopback is not independent or physical interoperability evidence.

CoreAndroid SDKiOS SDKVerify APIWallet AndroidWallet iOSLINKEDGEAcupixelLicenseSpring SDKLaw EnforcementVerify Intent

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

ISO 18013-5 NFC engagement (static + negotiated)
Technical status

ISO 18013-5:2021 production baseline. Readers support static and negotiated handover; Android wallet supports both on the interop branch. Static and negotiated handover transcripts pass the automated wallet-to-verifier loop, while the radio/APDU path still requires device evidence. iOS is reader-only for NFC because third-party apps cannot emulate the wallet tag.

CoreAndroid SDKiOS SDKVerify APIWallet AndroidLINKEDGEAcupixelLicenseSpring SDKLaw EnforcementVerify Intent

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

BLE L2CAP transport (CoC)
Technical status

Released in both SDKs (client + server, PSM pre-allocation); core's 2nd-ed §11.1.4 profile unreleased on interop branch.

CoreAndroid SDKiOS SDKLicenseSpring SDKLaw EnforcementVerify Intent

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

ISO 18013-7 Annex A (REST device retrieval)
Technical status

Verifier side in verify-api (/rest); SDKs + wallets implement the holder side (mdoc://). Ed2 request options unreleased.

CoreVerify APIAndroid SDKiOS SDKWallet AndroidWallet iOS

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

ISO 18013-7 Annex C (W3C DC API, org-iso-mdoc)
Technical status

Published ISO/IEC TS 18013-7:2025 Annex C profile. Holder primitives exist in both SDKs; Android wallet consent is on the interop branch. The iOS wallet app does not claim third-party identity-document-provider availability in its present host environment.

CoreVerify APIAndroid SDKiOS SDKWallet Android

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

OpenID4VP 1.0 redirect + Annex B (mdoc-openid4vp://)
Technical status

OpenID4VP 1.0 plus the published ISO/IEC TS 18013-7:2025 Annex B mdoc-openid4vp profile: request_uri, direct_post/direct_post.jwt, DCQL, and signed Request Object handling. P-256 signature profile is exercised; multi-curve and MAC coverage is not universal.

CoreVerify APIAndroid SDKiOS SDKWallet AndroidWallet iOS

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

OpenID4VP 1.0 over DC API
Technical status

openid4vp-v1-unsigned released in verify-api; core carries Draft 24 + 29 handover; Android wallet + signed variant on interop branches; verifier side is server-brokered.

CoreVerify APIAndroid SDKWallet Android

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

ePassport / eMRTD (ICAO 9303)
Technical status

passport-core: BAC, PACE (GM full; IM/CAM AES-128), Chip + Active Auth, Passive Auth, 581-CSCA master list. verify-api: MRZ + Passive Auth only. LINK: full chip read.

CoreVerify APILINK

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

MiDNI signed QR (VDS v1.0.7)
Technical status

Edad/Simple/Completo variants, cert store + OCSP protocol; distributed as .NET DLL, iOS xcframework, Android UniFFI and REST from midni-core.

CoreVerify API

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

AAMVA PDL (PDF417)
Technical status

Parse-only (barcode carries no signature); v1/v2 + modern field maps; LINK does hardware scan + parse.

CoreVerify APILINK

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

EUDI PID profile (eu.europa.ec.eudi.pid.1)
Technical status

Released doc type in core + verify-api; SDK typed-document surface and wallet multi-doc store on interop branches; German-namespace preset unreleased.

CoreVerify APIAndroid SDKiOS SDKWallet Android

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

Photo ID profile (ISO 23220)
Technical status

Released Photo ID document support includes three namespaces plus the eMRTD/DTC data-group adapter in core; LINK DLL support is released and UI work remains. This production row describes the document profile only. Part 3 provisioning is separately tracked as interop, while Part 5 remains draft-gated.

CoreVerify APIAndroid SDKiOS SDKLINK

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

EU Age Verification profile (eu.europa.ec.av.1)
Technical status

Released doc type; German age fan-out preset unreleased.

CoreVerify APIAndroid SDKiOS SDKWallet Android

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction

Other doc types (Aadhaar, mICOV, mVR/mVC)
Technical status

In the released SUPPORTED_DOC_TYPES set and core profile registry; SDK typed surfaces unreleased. mVC LDS draft (PDTS 7367) in standards library.

CoreVerify APIAndroid SDKiOS SDK

Queued / draftBuilt — not releasedInterop testingRelease candidateProduction