Skip to content

This is an implementation of a KYC Identification system built with noirjs and deployed on scroll

License

Notifications You must be signed in to change notification settings

MayowaObisesan/noir-scroll-kyc

Repository files navigation

Iris Identity (Iris-I)

Image

Welcome to Iris Identity! Iris Identity (Iris-I) is a zk Verifiable Credential (VC) system that allows users to upload and verify their identity and documents in compliance with most jurisdiction's KYC requirements. It also serves as a Decentralized Identity (DID) provider where individuals create, store, and manage digital identities in a secure and privacy-focused system.

This dapp was developed as a project for the Scroll Vortex hackathon.

Motivation

Have you ever attempted to sign up to a platform that required KYC but the KYC verification service had so many issues while trying to take your details and documents? Or are you tired of having to twist, or turn, or rotate your head? Or open your mouth, close it, tongue out? All of those frustrating attempts at just trying to prove that you are a human being. Now, imagine you could do all of that just once, yes, just once and everywhere that it is requested, you just submit the proof without having to submit your identity documents or do a liveness check everytime. Iris Identity is a verifiable credential (VC) system that provides zk decentralised identities (DID) for users (Identity Holders) in a trust-less, decentralised and verifiable manner.

Features

  1. Account Creation and Profile Set-Up: Users create their accounts using their supported Ethereum wallet of choice, for example, Metamask, Coinbase, etc, this gives them access to interacting on the platform.
  2. Completing Biometric and Document Verification: After users create their accounts, they now can complete their documents and liveness verification and generate a zk proof of their identity.

Note: At the stage of this submission, all of these features are in their most basic form, the development team has ideas and a roadmap to building a more robust platform with more features that extend the ability of Iris-I as well as improve general and overall user experience.

Technology Stack

  • NOIR ZK Circuits: The project utilises NOIR, a domain-specific language for writing zero-knowledge circuits, to define the cryptographic operations needed for generating and verifying proofs. You can find the circuits in the Circuits folder in the Github repo
  • Persona: Persona is a globally reputable identity verifier, we used their api to verify that the identity documents and liveness check were submitted to Iris-I.
  • Solidity and Smart Contracts: Deployed to the Scroll Sepolia testnet.
  • Frontend: The entire frontend is developed with Vite-React. All assets, including fonts, images, and sprites for animations, are sourced from the internet.

Links:

Getting Started with IRIS-I

To run the application, you can follow the live vercel link, here

If you want to run it locally, clone this repo and run yarn dev to get started.

Upon getting started, follow these steps:

  • On the homepage, click on Enter App
  • Click on Connect Wallet: Connect an Ethereum Wallet on the Scroll Sepolia testnet.
  • At the top right corner, click on Start KYC Verification, this will pop a modal for you to submit a valid means of identification as officially issued by the government of your country.
  • Complete the test of humanity liveness check, follow the prompts provided by the verification modal.
  • Wait for the identity document and selfie you submitted to be verified, this should take less than 1 minute.
  • It will then also prompt you to sign for onchain verification.
  • With onchain verification successful, you will receive a KYC hash to confirm that your identity has been verified.

So, drum-rolls please🥁, welcome to the future of onchain decentralized identities (DID) powered by a convenient and friendly user interface that gives priority for optimal and easy onchain experience!


Note: This project is intended for educational and proof-of-concept purposes. Please use ERC-20 tokens responsibly and adhere to any relevant blockchain regulations.


Noir Starters

To get started with writing zero-knowledge circuits with Noir.

Each project is an example you can use as template. Feel free to mix them in to find the best combination of technology that suits your needs.

Getting started

If you have node installed, just open a terminal and run:

npx create-noir

Templates

Example Projects

You can view more complete example projects written in Noir in the Noir Examples repo.

Support

Need help? Join the Noir Discord or reach out on Twitter.

Contributing

We welcome contributions! Check out the contributing guidelines for more info.

About

This is an implementation of a KYC Identification system built with noirjs and deployed on scroll

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published