Skip to content

privacybydesign/vcmrtd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

776 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lines of Code Maintainability Rating Quality Gate Status Reliability Rating Vulnerabilities Code Smells Technical Debt codecov

VCMRTD

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.

Packages

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.

Example app

The vcmrtd/example app demonstrates the full flow: MRZ scanning, NFC reading, face verification, and Verifiable Credential issuance.

Home screen MRZ scanning NFC positioning Reading progress Results

cd vcmrtd/example
flutter pub get
flutter run

Related projects

  • 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

Attribution

The vcmrtd package is based on dmrtd by ZeroPass, with significant modifications and improvements by the Yivi team.

License

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.

Funding

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.

NLnet foundation logo NGI Zero Logo

About

Dart library for Verifiable Credentials from MRTDs

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages