
FairStake
Proof of person, not passport — reusable investor credentials for sybil-resistant fair launches.
Demo
About
Fair launches get sybil-farmed. Full KYC is overkill for small pools. FairStake separates human eligibility from capital commitment. Investors prove they're a unique live human via World Selfie Check — one nullifier, enforced on-chain. They receive a portable investor passport (ENS-shaped credentials on Sepolia) with max commit and expiry. They then commit USDC into fair-launch pools on Arc Testnet with per-investor caps. Unverified wallets fail closed. The Sybil Test: verified investor commits → fresh wallet reverts → same passport works on Round 2 without a second selfie. Proof of person, not proof of passport.
How it's made
Built with Scaffold-ETH 2 (Next.js + Hardhat). Smart contracts: FairStakePool on Arc Testnet (USDC commits, nullifier reuse guard, fail-closed gating) and InvestorPassportRegistry on Sepolia (ENS-shaped text records). World IDKit v4 + RP signing server for Selfie Check; verified nullifiers flow through /api/world/verify → /api/credential/issue, which writes credentials on-chain via the deployer verifier key. Frontend: Judge Theater with Sybil Attack Theater (50-bot simulation), KYC Treadmill vs Passport contrast, and live commit flow on Arc. Deployed on Arc (0x53fa…3766) and Sepolia (0x53fa…3766). 5 passing Hardhat tests.