This project is an open-source bounty platform that leverages zero-knowledge proof technology to verify GitHub contributions. This platform allows developers to claim bounties by providing cryptographic proof of their completed work through GitHub merge notification emails.
The system works by having users upload their GitHub merge notification emails (.eml files) to generate zero-knowledge proofs. These proofs verify that a user has legitimately completed a specific task without revealing sensitive information. Once verified, contributors can claim their bounty rewards directly through the platform using their Ethereum wallet.
Key features include:
- Blockchain-based bounty management for transparency and trust
- Zero-knowledge proof verification of GitHub merge notifications
- Web3 integration allowing users to connect their Ethereum wallets
- Decentralized payout system for bounty claims
- User-friendly interface with real-time verification feedback
The platform aims to solve common issues in open-source contribution management by providing a trustless, transparent system for verifying work completion and distributing rewards. This creates stronger incentives for developers to contribute to open-source projects while giving project maintainers confidence that bounties are being awarded for legitimate contributions.
This project is built using a modern React-based frontend with TypeScript for type safety, coupled with Ethereum smart contracts for managing bounties and payments. The core innovation of the platform comes from integrating zero-knowledge proof technology to verify GitHub contributions without compromising user privacy.
Frontend Architecture
- React & TypeScript: The UI is built using React with TypeScript for type safety and better developer experience
- Shadcn UI: Leveraged this component library for a consistent and accessible design system, allowing to quickly build out modals, dialogs, and interactive elements
- Ethers.js: This library handles all Ethereum interactions, including wallet connections, contract calls, and transaction management
Zero-Knowledge Proof System
- ZK-Email SDK (@zk-email/sdk): The centerpiece of the verification system that allows to generate and verify zero-knowledge proofs from GitHub merge notification emails
- Custom Proof Verification: Implemented a blueprint system for different types of proof verification templates, with specific focus on GitHub merge verification(https://registry.zk.email/3c34157f-e454-4239-972e-f30dedb91885)
Smart Contract Integration
- Custom Bounty Contracts: Developed Solidity contracts to manage bounty creation, claims, and fund distribution
- On-Chain Verification: Proofs generated from GitHub merge emails are verified on-chain before bounty funds are released
- Web3Provider Integration: The application connects directly to users' wallets through ethers.js to sign transactions
Notable Technical Challenges
- Email Proof Generation: Converting standard GitHub merge notification emails into valid zero-knowledge proofs required careful parsing and extraction of the relevant information.
- Progressive Enhancement: The UI progressively guides users through the proof generation and verification process with clear loading states and feedback, handling the inherent delays in blockchain transactions and proof verification.
- Error Handling: Implemented robust error handling throughout the application to deal with various failure modes in the verification process, which is particularly important when working with cryptographic proofs.
The most challenging aspect was balancing the complex cryptographic verification with a simple, intuitive user experience that abstracts away the complexity while maintaining the security benefits of zero-knowledge proofs. By carefully orchestrating the frontend state management with backend verification processes, a seamless experience has been created for users to claim bounties with cryptographic certainty.