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

Recommended

The easiest way — zkGrants handles proof generation automatically in the claim flow:

  1. 1Go to the grant page and click "Claim"
  2. 2Connect your wallet and verify your GitHub account
  3. 3Click "Generate Proof" — we handle the rest
  4. 4Wait for proof generation (may take a few minutes)
  5. 5Submit the claim transaction to receive your reward

Permissionless Proof Generation

Advanced

Anyone 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.