{"id":21538295,"url":"https://github.com/rarimo/passport-contracts","last_synced_at":"2025-09-10T14:10:19.788Z","repository":{"id":230912139,"uuid":"780431014","full_name":"rarimo/passport-contracts","owner":"rarimo","description":"Decentralized Identity Issuance Contracts","archived":false,"fork":false,"pushed_at":"2025-09-09T13:14:03.000Z","size":16904,"stargazers_count":27,"open_issues_count":0,"forks_count":9,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-09T16:32:42.859Z","etag":null,"topics":["did","icao","identity","passport","x509","zk-passport","zkpassport"],"latest_commit_sha":null,"homepage":"https://npmjs.com/package/@rarimo/passport-contracts","language":"Solidity","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rarimo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-01T13:20:19.000Z","updated_at":"2025-09-09T13:14:17.000Z","dependencies_parsed_at":"2024-04-16T11:35:53.598Z","dependency_job_id":"750076f9-ba84-438f-8586-ddc5a00a882d","html_url":"https://github.com/rarimo/passport-contracts","commit_stats":null,"previous_names":["rarimo/passport-contracts"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/rarimo/passport-contracts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rarimo%2Fpassport-contracts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rarimo%2Fpassport-contracts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rarimo%2Fpassport-contracts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rarimo%2Fpassport-contracts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rarimo","download_url":"https://codeload.github.com/rarimo/passport-contracts/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rarimo%2Fpassport-contracts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274475932,"owners_count":25292514,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-10T02:00:12.551Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["did","icao","identity","passport","x509","zk-passport","zkpassport"],"created_at":"2024-11-24T04:11:35.859Z","updated_at":"2025-09-10T14:10:19.774Z","avatar_url":"https://github.com/rarimo.png","language":"Solidity","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n# 🛂 Decentralized Identity Issuance\n\nIssue your unique on-chain identity through Rarimo and ZKP.\n\n## 🧪 How it works\n\nThe general idea is to create a decentralized, permissionless protocol that will be able to issue users' on-chain identities without revealing anything about the users themselves.\n\nUsers will then use these identities as a gateway to a slew of activities like anonymous voting, socials, participation in events that require KYC, generation of humanity proofs, etc.\n\nThe ambitious idea has a set of challenges to overcome:\n\n- Identify the unique user being registered\n- Verify that the user is not being impersonated\n- Prove that the user is a human being\n- Issue the user \u003c-\u003e identity bond\n- Reveal no or minimal information about user's credentials\n\n### 1. Identify the user\n\nWe are anchoring to NFC-integrated passports to solve the first problem. Each passport is unique and represents a unique human. Users scan their passports through the mobile application and generate ZK proofs that verify their uniqueness.\n\n### 2. Verify the user is not impersonated\n\nThe second problem is solved through utilizing \"active authentication (AA)\" mechanism built into the NFC passports. We ask the user to sign the public key of their identity via AA and then verify this signature on-chain.\n\n### 3. Prove the user is a human\n\nUpon issuance, every NFC passport is signed by an authorized (slave) entity that is in turn signed by a member of ICAO Master List. We can extract these signatures from passports and check that the master signature resolves to a member of ICAO. The extraction is a two step process:\n\n1. Extract a slave X509 certificate and check its validity against the master signature\n2. Extract a slave signature and check a passport's validity against a valid X509 certificate\n\n### 4. Issue decentralized identity\n\nIf all the checks succeed, we issue a `\"hash of passport public key\" \u003c-\u003e \"identity public key\"` bond and store it in the Sparse Merkle Tree (SMT). That enables us to prove the belonging of the identity to a certain user in the participation events.\n\nThe stunning beauty of the aforementioned process is that **no** vital information is revealed during the registration. We are using advanced ZK techniques and Circom-based circuits to make it work.\n\n## 🪛 How to use\n\nWe distribute the smart contracts in the following NPM package:\n\n```bash\nnpm install @rarimo/passport-contracts\n```\n\nAfterwards, you will be able to use the application by calling the `Registration` entrypoint smart contract.\n\n\u003e [!NOTE]\n\u003e This is experimental, state of the art software. Behold and use at your own risk.\n\nHere you will find a guide for the on-chain integration with the SDK, which is provided as a part of the NPM package: [Guide: Setting up on-chain user verification with ZK Passport](https://docs.rarimo.com/zk-passport/guide-on-chain-verification/)\n\n## License\n\nThe smart contracts are released under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frarimo%2Fpassport-contracts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frarimo%2Fpassport-contracts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frarimo%2Fpassport-contracts/lists"}