Skip to content

PASS2RENT   by   Odifis

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).

Step A โ€” identity + age at booking (France Identitรฉ PID: name, first name, age_over_18)

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.

Present your driving licence (QR) Eligibility report: driver cleared to rent

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

Choose the signing method โ€” EUDI wallet recommended

Sign with your EUDI wallet (QR)

Signed rental contract ready (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.

Present your driving licence at unlock (QR) Verified, vehicle opens

๐Ÿ“ฒ 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.

The verifier vitrine โ€” credential picker (PID only / mDL only / PID + mDL) and a verified driver-identity result


Getting started

  1. 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).
  2. 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.
  3. 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-all mode 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