Verification Channels

Choose the right communication channel for your mDL verification use case.

The mDL SDK supports three verification channels as defined by ISO 18013-5. Each channel has different characteristics suited to various use cases.

ChannelBest ForRangeSetup Complexity
QR CodeMost scenarios, easy UXVisual rangeLow
NFCQuick tap verification< 4cmMedium
Bluetooth LEHands-free, larger data~10mMedium

QR Code Verification

QR code verification is the most common and easiest to implement. Your app displays a QR code that the mDL holder scans with their wallet app, which then responds with their credential data.

When to Use

  • General-purpose age or identity verification
  • Retail and hospitality environments
  • When NFC/BLE hardware isn't available
  • Remote or contactless verification

Implementation

QRVerification.swiftswift
Loading...
Tip: For QR code generation, you can use Core Image's CIQRCodeGenerator filter.

NFC Verification

NFC verification allows the holder to tap their phone against your device. This provides a quick, intuitive experience similar to contactless payments.

When to Use

  • Point-of-sale terminals
  • Access control systems
  • Quick repeated verifications
  • When both devices have NFC

Check NFC Availability

NFCVerification.swiftswift
Loading...

Implementation

NFCVerification.swiftswift
Loading...
Important: NFC is only available on iPhone 7 and later. It's not available on iPads or Macs.

Bluetooth LE Verification

Bluetooth Low Energy (BLE) verification allows wireless communication over a longer range than NFC. This is useful for hands-free scenarios or when transferring larger amounts of data.

When to Use

  • Hands-free verification scenarios
  • When larger data transfer is needed
  • Kiosk or automated systems
  • When NFC isn't available

Check BLE Availability

BLEVerification.swiftswift
Loading...

Implementation

BLEVerification.swiftswift
Loading...

Configuration Options

Configure channel-specific timeouts in your SDK configuration:

Configuration.swiftswift
Loading...

Choosing the Right Channel

ScenarioRecommended Channel
Retail checkoutQR Code or NFC
Bar/restaurant age checkQR Code
Building access controlNFC
Car rental verificationQR Code
Drive-through kioskBluetooth LE
Remote/online verificationQR Code (via camera)

Next Steps