How It Works
zkGrants combines GitHub verification with blockchain smart contracts to create trustless software bounties
⚡The Big Picture
zkGrants enables anyone to fund specific code contributions with cryptocurrency. When a contributor successfully completes the work (verified by GitHub), they can generate a cryptographic proof and claim the reward automatically—no middleman required.
We use zkTLS (Zero-Knowledge TLS) proofs to verify GitHub API responses. This means the smart contract can trustlessly confirm that a PR was merged or a CI check passed, without relying on any centralized oracle.
Step by Step
Funder Creates a Grant
A project maintainer or sponsor creates a grant by specifying:
- Repository & Branch: Which repo and target branch (e.g.,
main) - Judging Mode: Either "PR Merged" or "CI Check Passed"
- Award Amount: ETH, SOL, or stablecoins
- Deadline: When the grant expires
Funds Are Locked On-Chain
The funder deposits the award amount into the zkGrants smart contract. The funds are locked and can only be released when a valid proof is submitted—or refunded to the funder after the deadline if unclaimed.
Contributors Build & Submit PRs
Developers work on the code and submit pull requests to the target repository. The work proceeds like any normal open source contribution—through code review and iteration.
Generate zkTLS Proof
Once the PR is merged (or CI passes), the contributor uses our prover to generate a zkTLS proof. This proof cryptographically demonstrates:
- The GitHub API response is authentic (signed by GitHub's TLS certificate)
- The PR was merged to the correct branch / CI check passed
- The contributor is the PR author
Submit Proof & Claim Reward
The contributor submits the proof to the smart contract. The contract verifies the proof on-chain and, if valid, instantly transfers the award to the contributor's wallet. No intermediaries, no delays.
Technical Details
🔐zkTLS Proofs
We use TLSNotary-based proofs that verify TLS session data without revealing the full response. The proof confirms authenticity while keeping unnecessary data private.
⛓️Multi-Chain Support
zkGrants works on both Ethereum (and L2s) and Solana. The same proof format works across chains—only the smart contract implementation differs.
🎯Judging Modes
Merge-based: PR must be merged by a maintainer.
CI-based: Specified workflow must pass (great for automated testing challenges).
💸Fee Structure
A small 4% platform fee is deducted upfront when creating a grant. This fee is non-refundable and helps maintain the platform.
Ready to Get Started?
Create your first grant or browse existing opportunities