Example Integrations
Cowboy enables developers to build privacy-preserving proofs about web data using custom integrations. This section gives a high-level overview of how these integrations are structured, how they work, and what they enable.
π― Purpose of Integrations
Integrations allow developers to:
- Prove specific statements about web data (e.g., βMy age according to a government website is over 21.β)
- Embed custom logic that runs inside zero-knowledge proofs.
- Emit structured public outputs for use in identity systems, scoring mechanisms, credentials, or composable applications.
This is the utility layer of Cowboy, where developers define what they want to verify about web data and how it can be reused across the ecosystem.
ποΈ Integration Structure
Each integration includes the following key components:
- A web target β An endpoint or page on the internet (e.g.,
https://pokeapi.co/api/v2/pokemon/jigglypuff
) whose request/response will be proven. - An application-specific program β A zk-STARK circuit written in Rust that verifies the TLSNotary proof (core proof) and checks custom conditions about the fetched data (e.g., checking follower count, extracting specific fields).
- Public outputs β Optional values emitted by the program after verification, used on-chain or by other integration proofs.
These programs are tested using the Cowboy prover container and submitted to the devnet for deployment and interaction.
π§ͺ Example Integration Overview
The example integrations demonstrate both whatβs possible and how to use the provided dev tools for building, testing, and uploading integrations. Each includes:
-
TLSNotary Proof Input
Each integration expects a TLSNotary proof aligned to a specific URL β for example, the TikTok integration requires a proof of a request towww.tiktok.com/aweme/v2/data/insight/
. This proof is generated by the browser extension and passed to the prover.β Both example integrations come with a working sample proof so you can start developing immediately. You can also generate your own proof using the extension and prover.
-
Utilities
run
: Prove your integration locally against a given input. This is useful during development.upload
: Deploy your integration to the chain so that others can use it and verify proofs onchain.
Next Steps
Check out the Repo here