by
¶
Rent a car with your wallet.
Contactless car rental, powered by the EU Digital Identity Wallet. PASS2RENT lets a rental agency verify the driver's identity and driving licence โ and sign the rental contract โ with cryptographic proof from the wallet. No photocopied ID, no manual KYC.
| Product | PASS2RENT โ contactless.rent |
| Category | Online Verifiers |
| Rental demo | https://api.playground.france-identite.gouv.fr/odifis/contactless-rent/ |
| Verifier demo | https://api.playground.france-identite.gouv.fr/odifis/eudi-demo/ |
| Status | Demo / test environment โ synthetic identities only, no personal data stored |
What is PASS2RENT¶
PASS2RENT lets people rent a car straight from their phone. The driver books online, proves their identity and driving licence from their EU wallet, signs the rental contract, unlocks the car, takes a few photos of its condition, and drives away โ no counter, no paperwork, no photocopied ID.
Odifis, a software company based in Lithuania, is the editor of PASS2RENT โ and the developer of the EUDI wallet verifier built for it, the engine that cryptographically checks every credential.
One in-house verifier backs everything โ wallet- and credential-agnostic, on open EU standards (OpenID4VP, ISO/IEC 18013-5 mDL, SD-JWT VC PID, rQES).
What we verify¶
| Credential | What is checked |
|---|---|
| PID (SD-JWT VC) | name ยท age_over_N predicates |
| mDL (ISO 18013-5 mdoc) | licence number ยท categories ยท validity ยท per-category issue date (driving privileges) |
| Age | dynamic age_over_N predicate, selective disclosure |
| Contract | rQES contract signing (PAdES) via the wallet |
Protocols & formats¶
| Presentation | OpenID4VP 1.0 Final (also draft 24) |
| Attestation formats | mso_mdoc (ISO/IEC 18013-5) ยท SD-JWT VC |
| Query language | DCQL |
| Response mode | direct_post.jwt (encrypted response) |
| Client identification | x509_san_dns (reader certificate below) |
| Status / revocation | IETF OAuth Token Status List |
Live demos¶
1 ยท Contactless rental โ the full journey (Age โ Licence โ Unlock)¶
โถ https://api.playground.france-identite.gouv.fr/odifis/contactless-rent/
One wallet, three moments, one rental: Book โ Sign โ Drive. The headline demo spans age verification, driving licence, and identity (PID) in a single contactless journey, each step disclosing only what that step legally needs.
A โ Identity & age at booking. To reserve a car, the France Identitรฉ wallet presents the
driver's PID by QR โ confirming their name, first name and that they're old enough
(age_over_18). This is the step running against real trust
โ anchored to France Identitรฉ's own IACA on their playground (live crypto, trustAnchorMatched=true).

B โ Driving licence at pickup, fills + signs the contract. When the agency assigns a vehicle, the licence matters. An mDL presentation writes the licence data (number, categories, validity, seniority) into the rental contract and confirms category eligibility โ then a deliberate, separate rQES ceremony returns a real, signed PAdES contract.

The rental contract is then signed with the wallet โ a real rQES ceremony returning a signed PAdES PDF:



C โ Licence at unlock (the binding gate). A booking proof isn't enough โ it must be this person, on this device, at this vehicle, now. The driver's app triggers a fresh mDL presentation (new nonce + per-vehicle challenge); the verifier checks freshness + holder / device binding โ emits an ephemeral, single-use unlock token โ the car opens. No portrait by default โ biometrics stay in the wallet.

๐ฒ Companion mobile app. The driver journey (and the unlock step) runs in a PASS2RENT demo app. It is not on the public stores (these are demo builds); the public test builds (Android via Firebase App Distribution, iOS via TestFlight) are linked on the contactless.rent website โ in the footer and on the booking-confirmed screen.
2 ยท The verifier โ quick EU-wallet checks¶
โถ https://api.playground.france-identite.gouv.fr/odifis/eudi-demo/
A vitrine to test, fast, the exact EU-wallet checks the product relies on โ no booking, no app. Present a PID or mDL, evaluate an age_over_N predicate, or sign a contract (rQES) โ in one wallet ceremony, with a precise verdict (cryptographic authenticity, issuer trust, revocation; un-evaluated checks labelled). "Verify with your EU Wallet" โ QR โ scan โ verdict.

Getting started¶
- Rental demo โ open https://api.playground.france-identite.gouv.fr/odifis/contactless-rent/ โ
pick a vehicle and dates โ present your France Identitรฉ PID by QR โ it confirms your name,
first name and that you're old enough (
age_over_18). For the licence + unlock steps, install the companion app (Android / iOS test builds linked on contactless.rent). - Verifier demo โ open https://api.playground.france-identite.gouv.fr/odifis/eudi-demo/ โ choose a check (PID ยท mDL ยท age ยท sign) โ scan the QR โ read the verdict.
- To run the mDL ceremony from your own wallet build, whitelist our reader certificate (below).
Reader certificate¶
To verify mDL/mdoc attestations, add the following reader certificate to your whitelist (NIST P-256 โ Android / conscrypt compatible):
-----BEGIN CERTIFICATE-----
MIICNDCCAdqgAwIBAgIUMan4dHq1pRUkmOuDZZoedOdHVL4wCgYIKoZIzj0EAwIw
TzEvMC0GA1UEAwwmYXBpLnBsYXlncm91bmQuZnJhbmNlLWlkZW50aXRlLmdvdXYu
ZnIxDzANBgNVBAoMBk9kaWZpczELMAkGA1UEBhMCRlIwHhcNMjYwNjIxMTAwNzI3
WhcNMjgwNjIwMTAwNzI3WjBPMS8wLQYDVQQDDCZhcGkucGxheWdyb3VuZC5mcmFu
Y2UtaWRlbnRpdGUuZ291di5mcjEPMA0GA1UECgwGT2RpZmlzMQswCQYDVQQGEwJG
UjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAdGSHKjOOiZ9XQXCjUFUo4qlPtw
n4wsGOF4WGwBNpS5NanO2lfbYMR2TLNAn4LcyGc80/fKnB8FdWDsL2bhC2ujgZMw
gZAwNAYDVR0RAQH/BCowKIImYXBpLnBsYXlncm91bmQuZnJhbmNlLWlkZW50aXRl
LmdvdXYuZnIwEgYDVR0TAQH/BAgwBgEB/wIBAjAOBgNVHQ8BAf8EBAMCAYYwFQYD
VR0lAQH/BAswCQYHKIGMXQUBBjAdBgNVHQ4EFgQURHsmqIjhYio3rMRauYNZJV78
MfkwCgYIKoZIzj0EAwIDSAAwRQIhALDcxlOiOl5YW0vweG17kCoK+hAbB04/cwJY
SW7SWDPNAiAO0tjw0X5fIe7/Rtu/DLNCXQmsjQmlzxuhKiLSZRVTyQ==
-----END CERTIFICATE-----
Self-signed reader CA ยท P-256 (prime256v1) ยท SAN api.playground.france-identite.gouv.fr
ยท extKeyUsage 1.0.18013.5.1.6 (mdoc reader auth) ยท valid 2026 โ 2028.
Status & path to production¶
- On the France Identitรฉ playground, the live path is PID / age (Demo 1 ยท A). The mDL steps (Demo 1 ยท B/C and the verifier demo) run against the EU Reference Wallet and need a registered Reader Auth Certificate before the mDL ceremony works on the FR / Unfold sandboxes.
- rQES is Advanced (AES) in the demo โ not yet legal QES. The moment a qualified QTSP is contracted, the same ceremony produces QES, with no code change.
- mDL issuer trust runs in
accept-allmode in the demo; production anchors it to the EU LOTL / RICAL trust lists. - The mDL and rQES flows are already built and exercised in the demo โ production switches them on once Relying-Party trust registration is complete.
Organisation & contact¶
| Organisation | Odifis UAB ๐ฑ๐น |
| Contact | nicolas.hoppenot@odifis.com |
PASS2RENT ยท by Odifis UAB