Generating Proofs
Trustless verification of GitHub outcomes
What is a zkTLS Proof?
A zkTLS proof is a cryptographic attestation that verifies a specific outcome occurred on GitHub. It proves facts about TLS (HTTPS) sessions without revealing the full session data.
For zkGrants, this means proving:
- Your PR was merged by a maintainer
- Required CI workflows passed
- You control the GitHub account that authored the work
Why Proofs Matter
Trust-Minimized
No need to trust zkGrants or any intermediary. The proof is mathematically verifiable by the smart contract.
Onchain Verification
Proofs are verified by onchain smart contracts, enabling automatic, immutable payout release.
Permissionless
Anyone can generate proofs — you're not dependent on zkGrants to claim your reward.
What the Proof Contains
A zkGrants claim proof attests to the following:
GitHub Outcome
The specific event that occurred — PR merged, workflow passed, checks completed — verified directly from GitHub's API response.
Grant Binding
The outcome matches the grant's configured rules — correct repository, branch, workflow, and deadline requirements.
Identity Link
The claimant controls the GitHub account that authored the qualifying contribution.
Recipient Address
The payout address is bound to the proof, preventing front-running or address substitution.
Generating Your Proof
Hosted Proof Generation
RecommendedThe easiest way — zkGrants handles proof generation automatically in the claim flow:
- 1Go to the grant page and click "Claim"
- 2Connect your wallet and verify your GitHub account
- 3Click "Generate Proof" — we handle the rest
- 4Wait for proof generation (may take a few minutes)
- 5Submit the claim transaction to receive your reward
Permissionless Proof Generation
AdvancedAnyone can run the zkGrants prover independently. This ensures the system remains decentralized and censorship resistant.
Note: Permissionless proving requires GPU resources and technical setup. Most users should use hosted generation.
What to Expect
Generation Time
Proof generation typically takes 1-5 minutes depending on complexity and system load. You'll see a progress indicator.
Proof Size
Proofs are optimized for onchain verification. The claim transaction includes the proof data and pays standard gas fees.
Tip: If proof generation fails, you can retry. The system is idempotent — retrying won't create duplicate claims.
Security Guarantees
- Cannot fake GitHub outcomes
zkTLS verifies actual GitHub API responses through TLS certificate chains.
- Cannot claim as someone else
Proofs bind the GitHub identity to the payout address, preventing impersonation.
- Cannot front-run claims
The recipient address is committed in the proof itself, not just the transaction.
- Cannot replay proofs
Proofs include grant ID, chain ID, and unique identifiers to prevent reuse.
Ready to Claim?
Once your proof is generated, you're ready to submit the claim transaction and receive your reward.