NOAH (Network for On-chain Authenticated Handshakes) is a state-of-the-art, zero-knowledge proof-based identity protocol for the Avalanche ecosystem. It enables applications (Gaming, DeFi, and Consumer Apps) to verify user compliance (age, jurisdiction, sanctions) without ever touching or storing personal data.
Noah eliminates the redundancy of KYC on-chain. By using Zero-Knowledge Proofs (ZKP), users bind their identity to their wallet address once. This verification is then instantly reusable across every integrated app on Avalanche—from DeFi protocols to Web3 games—while maintaining 100% user privacy.
Here is what you can build with Noah:
Keep your leaderboards fair. Verify that each player is a unique human behind the keyboard, putting an end to multi-accounting and bots.
Age-gate your content or services effortlessly. Prove your user is over 18 without asking them to upload a photo of their ID card to your servers.
Onboard users securely. Meet strict KYC requirements while preserving your users' on-chain privacy.
Noah isn't just a protocol; it's a complete platform with professional presentation tools:
- Professional Pitch Deck: An interactive, slide-based presentation built directly into the UI to communicate Noah's value proposition to stakeholders.
- Visual Data Flow: A high-fidelity animated diagram that visualizes the technical process of transforming sensitive MRZ data into private ZK-Proofs.
Unlike legacy systems, Noah operates without a central backend for proof generation. All cryptographic heavy lifting occurs on the user's device.
graph LR
subgraph Client["User Device (Noah SDK)"]
Passport[Passport MRZ] --> OCR[Automated OCR]
OCR --> WASM[Gnark WASM Prover]
WASM --> Proof[ZK Proof]
end
subgraph Avalanche["Avalanche C-Chain"]
Proof --> Registry[CredentialRegistry]
Registry --> Access[ProtocolAccessControl]
Access --> Verifier[ZKVerifier]
end
Access --> |Grant Access| DeFi[DeFi Protocol]
The heart of the protocol. It handles:
- Automated OCR: Extracts MRZ data from passport images locally.
- Gnark-WASM Prover: A high-performance ZK engine that generates proofs in the browser using the BN254 curve.
- Identity Binding: Automatically binds every proof to the user's active wallet address, preventing proof theft.
The on-chain source of truth for identity status:
- Global Nullifiers: Prevents identity duplication using
Hash(PassportNumber). - Identity-Wallet Binding: Links a specific identity to a single wallet address permanently upon first use.
- Revocation: Allows authorized issuers to revoke credentials instantly.
The gateway for DeFi applications:
- Reusable Proofs: Protocols can verify the same client-side proof if the user-binding matches.
- Customizable Requirements: Protocols set their own thresholds for age, allowed jurisdictions, and accreditation status.
Noah uses Selective Disclosure—the protocol only proves the requirement (e.g., "User is over 18"), not the data (the user's birth date).
- No Backend: No central server ever sees or processes the user's passport data.
- Client-Side Proving: Proofs are generated via WASM in a secure environment on the user's device.
- Nullifier Protection: Uses salted hashes to prevent identity tracking across different protocols.
npm install noah-avalanche-sdkimport { NoahSDK } from 'noah-avalanche-sdk';
const sdk = new NoahSDK({ provider: window.ethereum });
// 1. Scan Passport
const mrzData = await sdk.extractPassportData(image);
// 2. Generate Proof (User-bound to wallet)
const proof = await sdk.proveAge(mrzData, 18);
// 3. Verify on Avalanche
await sdk.grantAccess(protocolAddress, proof);- Foundry: For smart contract development and testing.
- Go: For ZK circuit implementation (Gnark).
- Node.js: For the SDK and Frontend.
# Test Contracts
forge test
# Generate Circuits (Go)
go build ./circuit/...
# Build Frontend
cd frontend && npm run buildRepository: Samuel1-ona/Noah
Status: Live on Avalanche Testnet
Powered by: Gnark, Solidity, and Avalanche.