This repository contains two Flutter packages for reading and verifying electronic travel documents (ePassports, eID cards, driving licences) and performing biometric face verification built for the Yivi ecosystem.
A Dart/Flutter library for reading Machine Readable Travel Documents (MRTDs) via NFC. Implements ICAO 9303 with BAC and PACE authentication, reads all standard data groups, and integrates with go-passport-issuer for server-side Passive Authentication and Verifiable Credential issuance.
A Flutter package for face verification and liveness detection. Supports active liveness (gesture challenges) and passive liveness (anti-spoofing + rPPG heart rate), plus face matching against the DG2 photo from the NFC chip. Runs entirely on-device in a background isolate using bundled TFLite models.
The vcmrtd/example app demonstrates the full flow: MRZ scanning, NFC reading, face verification, and Verifiable Credential issuance.
cd vcmrtd/example
flutter pub get
flutter run- go-passport-issuer — backend service for document verification and VC issuance
- GMRTD — Go library for MRTD operations (used by go-passport-issuer)
- Yivi — privacy-preserving identity platform
The vcmrtd package is based on dmrtd by ZeroPass, with significant modifications and improvements by the Yivi team.
Copyright (C) 2025-2026 Yivi B.V.
This software is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
The full licence text is in LICENSE. The same text ships with both packages, in vcmrtd/LICENSE and face_verification/LICENSE.
This project received funding through NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program. Learn more at the NLnet project page.





