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.
| Channel | Best For | Range | Setup Complexity |
|---|---|---|---|
| QR Code | Most scenarios, easy UX | Visual range | Low |
| NFC | Quick tap verification | < 4cm | Medium |
| Bluetooth LE | Hands-free, larger data | ~10m | Medium |
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
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
Implementation
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
Implementation
Configuration Options
Configure channel-specific timeouts in your SDK configuration:
Choosing the Right Channel
| Scenario | Recommended Channel |
|---|---|
| Retail checkout | QR Code or NFC |
| Bar/restaurant age check | QR Code |
| Building access control | NFC |
| Car rental verification | QR Code |
| Drive-through kiosk | Bluetooth LE |
| Remote/online verification | QR Code (via camera) |
Next Steps
- Claim Sets – Learn what data you can request from mDL holders
- Session Management – Handle session lifecycle and state