ETH Global Link: https://ethglobal.com/showcase/inro-rped8
Inro
is a state-of-the-art application dedicated to digital identity verification and privacy preservation. Created during the 2024-CircuitBreaker
hackathon, Inro
seeks to fulfill the societal demand for a secure age verification mechanism in online platforms, adult content access control, among others, without sacrificing user privacy.
Inro
facilitates age verification without revealing personal information, making it ideal for bars, rental shops, and similar establishments. The process is simplified into four steps:
- Scan Your ID: Currently supports only the MyNumber Card (a government-issued ID card in Japan).
- Show the QR Code: Display the QR code generated through the Inro app.
- Scan QR Code: Use the app to scan the QR code presented.
- Check Verification Result: Verify the age without accessing any additional personal information.
- Privacy-preserving Age Verification: Enables age verification without disclosing personal details.
- Secure and User-friendly Verification Process: Offers a secure, straightforward interface for quick age verification.
- Cross-platform Compatibility: Developed using React Native and TypeScript for seamless operation across iOS and Android devices. (Currently supports iOS only)
- Frontend: React Native, TypeScript, employing Expo for NFC card scanning via Expo's Native Modules.
- Backend: Utilizes the Sindri API for zero-knowledge proof generation and the Noir proving system for age verification logic.
Inro prioritizes privacy, security, and simplicity. The backend leverages the Sindri API for zero-knowledge proofs, with Noir for crafting age verification logic, ensuring only necessary age information is verified. The frontend uses modern JavaScript frameworks, including React Native, for a smooth, cross-platform user experience. The integration of Expo's Native Modules for NFC card scanning exemplifies Inro's innovative use of technology.
To run Inro locally, follow these steps:
-
Clone the Repository:
git clone https://github.com/knocks-public/2024-CircuitBreaker.git
-
Install Dependencies:
make install
-
Deploy Circuit:
make deploy_circuit
-
Build the Application: Navigate to
packages/frontend
, then:npm run prebuild npm run ios
Open Xcode with
2024-CircuitBreaker/packages/frontend/ios/frontend.xcodeproj
. -
Start the Application: For development, initiate the Expo development server:
cd packages/frontend npm run start:dev
Set up the following environment variables:
Copy .env_sample
to .env
and adjust as necessary:
EXPO_PUBLIC_SINDRI_API_KEY
: Your Sindri API key.EXPO_PUBLIC_SINDRI_API_URL
: The Sindri API URL.EXPO_PUBLIC_CIRCUIT_ID
: Your circuit ID for zero-knowledge proofs.LOCAL_IP_ADDR
: Your local IP address (for Expo in Docker+docker-compose setups).
Inro
aims
to revolutionize digital identity verification by:
- Automating Age Verification in Bars: Enhancing efficiency by streamlining the age verification process.
- Improving the eKYC Process: Significantly reducing costs and waiting times for account openings, thereby lowering labor costs associated with manual verifications.
Such innovations are increasingly crucial as the need for robust digital identity management and privacy protection grows.
We welcome contributions. Please submit proposals via pull requests or issues.
Inro
is licensed under the MIT License.
- Shingo Takagi - Full Stack Developer
- Susumu Tomita - Full Stack Developer