Monorepo for OpenPassport.
OpenPassport is an identity wallet that lets users generate privacy-preserving proofs from government-issued IDs such as passports. By scanning the NFC chip in their ID document, users can prove their validity while only revealing specific attributes such as age, nationality or simply humanity. Under the hood, OpenPassport uses zk-SNARKs to make sure personal data is redacted, but the document is verified.
Use cases unlocked include:
- Airdrop protection: Protect a token distribution from bots
- Social media: Add humanity checks to user's profiles
- Quadratic funding: Prevent farmers from skewing rewards
- Wallet recovery: Safeguard assets using IDs as recovery sources
- Compliance: Check a user is not part of a sanctioned entity list
Checkout our coverage map here
When a country issues a passport, they sign datagroups that include at least:
- First name
- Last name
- Nationality
- Date of birth
- Gender
- Expiration date
- Passport number
- Photo
Countries use different signature algorithms to sign passports. Check out our coverage map to see which~
Not all signature algorithms are currently supported. To help us add support for yours, please contact us.
You can download the full list of public keys on the ICAO website. Our parsed list is at /registry
.
The International Civil Aviation Organization (ICAO) is a specialized agency of the United Nations. Among other things, they establish the specifications for passports, that have to be followed by all countries. The full passport specs are available here.
- Integrate OpenPassport to Gitcoin passport or a similar system to allow better sybil resistance in quadratic funding
- Combine with other sources of identity to provide quantified levels of uniqueness, totem-style. Examples can be anon aadhaar, Japan's my number cards or Taiwan DID
- Add OpenPassport as a Zupass PCD
- Build a social network/anonymous message board for people from one specific country
- Create a sybil-resistance tool to protect social networks against spambots
- Do an airdrop farming protection tool
- Allow DeFi protocols to check if the nationality of a user is included in a set of forbidden states
- Gate an adult content website to a specific age
- Create a petition system or a survey portal
- Use for proof of location using place of birth and/or address
- Passport Wallet: use active authentication to build a wallet, a multisig or a recovery module using passport signatures
We will provide bounties for all those applications. Those are not fixed right now, so please contact us if you're interested.
Everything we write is MIT licensed. Circom and circomlib are GPL tho.
We are actively looking for contributors. Please check the open issues if you don't know were to start! We will offer bounties from $100 to $1000 for any significant progress on these, depending on difficulty.
Contact me @FlorentTavernier on telegram for any feedback or questions.
Thanks Rémi, Youssef, Aayush, Andy, Vivek and Andrew for contributing ideas and helping build this technology, and PSE for supporting this work through grants!