Search projects, hackathons, sponsors and tech

    ← All projects

    POOP

    Proof of Onboarding Protocol: Send crypto gifts via email with human verification

    Demo

    About

    POOP (Proof of Onboarding Protocol) is a decentralized onboarding system that enables crypto-native users to send USDC gifts to anyone via email, with built-in proof-of-humanity verification. The protocol works in two flows: SENDER FLOW: Users connect their Farcaster wallet in a Farcaster Mini App, enter a recipient's email and amount, then deposit USDC into the PoopVault smart contract on Celo Mainnet. The system generates a unique claim link. RECIPIENT FLOW: Recipients receive an email with a claim link. They log in with Privy (email-only authentication), complete their profile, verify their humanity using Self's zero-knowledge identity verification, and then claim their USDC to any Celo wallet address. The smart contract (PoopVault) securely holds funds until verification is complete, preventing sybil attacks through Self's biometric/passport verification. Alchemy webhooks provide real-time blockchain event notifications, ensuring the backend stays synchronized with on-chain state. This creates a trustless, verifiable proof that real humans were onboarded, making it perfect for community growth, referral programs, and incentivized onboarding campaigns.

    How it's made

    Built with a full-stack architecture: SMART CONTRACTS: PoopVault contract written in Solidity using Foundry, deployed on Celo Mainnet. Uses OpenZeppelin's IERC20 for USDC token handling. The contract implements deposit, claimFor (owner-only), and cancel functions with event emissions for Deposit, Claim, and Cancelled events. FRONTEND: Next.js 14 with App Router, Wagmi/Viem for blockchain interactions, and Farcaster Mini App Connector for wallet connection. Privy SDK handles email authentication and embedded wallet creation for recipients. Self SDK (@selfxyz/qrcode) provides QR code-based identity verification flow. BACKEND: Express.js/TypeScript server with Supabase for user and POOP state management. Alchemy webhooks (GraphQL-based) listen for Deposit and Cancelled events, automatically updating POOP states from CREATED → FUNDED → VERIFIED → CLAIMED. Self backend verifier (@selfxyz/core) validates zero-knowledge proofs server-side. INTEGRATIONS: - Alchemy: Real-time blockchain event webhooks with signature verification - Self: ZK-proof identity verification (passport/biometric ID) for sybil resistance - Privy: Email-based auth and embedded wallet creation - Farcaster: Native wallet connection in Mini Apps - Supabase: PostgreSQL database for user profiles and POOP tracking The system uses a state machine: POOPs transition through CREATED → FUNDED (via Alchemy webhook) → VERIFIED (after Self verification) → CLAIMED (on-chain transfer). This ensures funds are only released after human verification, creating verifiable proof of onboarding.