Hackathon-ready compliance verification on Ethereum with Keychain authorization.
# 1. Install all dependencies
npm run setup
# 2. Configure environment (single file for everything)
cp .env.example .env
# Edit .env with your settings
# 3. Run everything
npm run devThis starts:
- Frontend on
http://localhost:3000 - Prover Service on
http://localhost:3001
# Contract address (set after deployment)
NEXT_PUBLIC_CONTRACT_ADDRESS=0x...
# Prover service
NEXT_PUBLIC_PROVER_URL=http://localhost:3001
PROVER_PORT=3001
# Deployment (your wallet key)
PRIVATE_KEY=your_private_key_without_0x
SEPOLIA_RPC_URL=https://sepolia.infura.io/v3/YOUR_KEY| Command | Description |
|---|---|
npm run dev |
Run frontend + prover together |
npm run dev:frontend |
Run frontend only |
npm run prover |
Run prover service only |
npm run build |
Build production frontend |
npm run setup |
Install all dependencies |
npm run compile |
Compile smart contracts |
npm run deploy:sepolia |
Deploy to Sepolia testnet |
npm run deploy:amoy |
Deploy to Polygon Amoy |
ProofX/
βββ app/ # Next.js pages
β βββ prototype/ # Demo page
βββ lib/ # Web3 integration
β βββ config.ts # Contract ABI & addresses
β βββ web3-context.tsx # Wallet connection
β βββ useProofX.ts # Proof flow orchestration
βββ prover/ # Backend prover service
β βββ server.js # Express API
βββ blockchain/ # Smart contracts
β βββ contracts/ # Solidity files
β βββ scripts/ # Deployment scripts
βββ docs/ # Documentation
ProofX uses Keychain as its cryptographic authorization layer and Groth16 for privacy.
What's Real:
- β Groth16 Zero-Knowledge Proofs (Real circuit execution)
- β Keychain Signing (EIP-191 personal_sign)
- β Blockchain Verification (Sepolia/Amoy)
- β Trusted Issuers Registry (On-chain verification)
Trusted Issuers Supported:
- ποΈ UIDAI (Aadhaar/eKYC with XML DSig)
- π¦ Central Banks (RBI, Federal Reserve)
- π’ Commercial Banks (HDFC, SBI)
- π Credit Bureaus (CIBIL)
- Connect Wallet β MetaMask on Sepolia
- Select Verification β KYC, Capital, Bank, etc.
- Upload Document β Upload real JSON (e.g., Aadhaar) or use sample
- Generate Proof β Client-side ZK proof generation
- Keychain Authorization β Sign with your key
- Submit to Blockchain β Real transaction
- Download Proof β Export standardized JSON proof
Create .env in the root (see .env.example):
# Contract Address (Sepolia)
NEXT_PUBLIC_CONTRACT_ADDRESS=0x3146ee369B979c2f776C3A74790b228C6BfE0673
# Prover Service
NEXT_PUBLIC_PROVER_URL=http://localhost:3001
# Blockchain (for deployment)
PRIVATE_KEY=your_private_key
RPC_URL=https://sepolia.infura.io/v3/...# 1. Install dependencies
npm run setup
# 2. Compile circuits (optional, artifacts included)
# npm run compile:circuits
# 3. Deploy contracts
npm run deploy:sepolia
# 4. Start app
npm run dev