zkTLS Validation
GitHub is a centralized, off-chain system. Smart contracts cannot natively verify whether:
a pull request exists
a pull request was merged
a contributor owns a GitHub account
an issue and PR are correctly linked
zkPull solves this by using zkTLS (Zero-Knowledge Transport Layer Security) to bring verifiable GitHub data on-chain without revealing private credentials or raw API responses.
zkTLS enables zkPull to cryptographically prove facts about GitHub, not trust GitHub as an oracle.
What zkTLS Validates
Each zkTLS proof generated by zkPull validates the following claims:
Repository Verification Confirms that the target GitHub repository exists and is publicly accessible.
Issue ID Verification Ensures the GitHub issue referenced by the bounty matches the repository and claim.
Contributor Identity Verification Verifies that the GitHub username associated with the PR matches the claimant.
Pull Request Merge Status Proves that the pull request has been successfully merged into the target branch.
Each validation result is binary and objective: valid or invalid.
How zkTLS Validation Works (High-Level Flow)
Contributor submits a Pull Request URL
zkPull initiates a zkTLS-secured HTTPS session with GitHub
GitHub responds with PR and repository data
zkTLS generates a zero-knowledge proof attesting to:
merge status
repository correctness
identity consistency
Sensitive data (tokens, raw responses) are never exposed
Proof output is passed to the on-chain validation layer
At no point does zkPull store or leak GitHub credentials.
Why zkTLS Is Critical
Without zkTLS, zkPull would need to rely on:
centralized backend servers
trusted API relayers
manual verification
zkTLS replaces these trust assumptions with cryptographic guarantees.
Key advantages:
No trusted oracle required
No API key custody
No replayable or forgeable responses
Privacy-preserving by design
This makes zkPull suitable for high-value bounties and security-sensitive use cases.
Privacy & Security Guarantees
zkTLS ensures:
GitHub access tokens are never revealed on-chain
Raw GitHub responses are never published
Only verification results are exposed
Proofs cannot be reused for different claims
This balances verifiability with developer privacy.
zkTLS as a Reusable Primitive
In zkPull, zkTLS is used to verify GitHub pull requests. However, the same validation pattern can be extended to:
Other GitHub events (commits, releases)
Bug bounty disclosures
CI / test result verification
Additional developer platforms
This positions zkTLS as a general-purpose off-chain verification layer, not a single-use component.
Failure Handling
If zkTLS validation fails:
The claim is rejected automatically
No funds are released
No manual intervention is required
Failure reasons may include:
PR not merged
Repository mismatch
Identity mismatch
Invalid or malformed PR URL
All failures are deterministic and reproducible.
Last updated

