Search projects, hackathons, sponsors and tech

    ← All projects

    zk-btc-sdk

    zk-btc-sdk: Plug-and-play dev tool to compile, deploy & verify ZK proofs on Bitcoin EVM chains.

    Demo

    About

    zk-btc-sdk is a plug-and-play developer tool that makes it effortless to bring Zero-Knowledge Proofs (ZKPs) to Bitcoin-based EVM chains. Traditionally, building ZK-powered applications is painful and time-consuming. Developers need to: - Write complex Solidity contracts containing cryptographic verification logic. - Manually compile Circom circuits into .wasm, .zkey, and verifier contracts. - Deploy contracts to multiple chains with custom tooling. - Interact with verifiers using raw ABI and contract addresses. zk-btc-sdk abstracts away all of this complexity into a seamless CLI + SDK workflow. With just three simple commands, developers can: Compile Circuits zk-btc-sdk compile circuit.circom → Outputs .wasm, .zkey, and verifier.sol. Test Circuits before deploying zk-btc-sdk test circuit input.json → Tests the circuit using input in input.json and files generated while compiling → Runs groth16 for provided input & locally verifies it Deploy Verifier Contracts zk-btc-sdk deploy <path-to-generated-folder> <PVT_KEY> --rootstock zk-btc-sdk deploy <path-to-generated-folder> <PVT_KEY> --citrea → One command deployment to Bitcoin EVM chains with no manual setup. Verify Proofs Automatically verifyProof() function → Automatically generates a proof, extracts public signals, and calls the deployed verifier — no ABI or address needed. Why zk-btc-sdk? - Plug-and-play: Developers skip weeks of boilerplate and infra setup. - Multi-chain support: Works across Bitcoin EVM L2s with a single flag. - Abstracted complexity: Proof generation, key setup, and verification are handled internally. - Developer-first: Designed as an SDK + CLI that integrates easily into any project. Tech Stack - Circom for ZK circuit definition. - SnarkJS for Groth16 setup, proof generation, and verification keys. - Solidity for verifier contracts. - Node.js CLI/SDK for plug-and-play developer experience. - Citrea & Rootstock for Bitcoin EVM chain deployment. Utility & Use Cases Identity & Privacy → Prove your age, citizenship, or credentials without revealing private data. DeFi Compliance → Add KYC/AML checks via ZK proofs, ensuring regulatory compliance while preserving user privacy. Gaming & Reputation → Verify player stats, achievements, or credentials without leaking sensitive info. Cross-chain Bridges → Use ZKPs to prove events across Bitcoin and EVM chains securely. Instead of spending weeks learning elliptic curve math, smart contract verification, or blockchain deployment, a developer can now integrate real ZK-powered features in minutes. Vision zk-btc-sdk aims to be the Hardhat for Zero-Knowledge : a simple, developer-friendly toolkit that makes ZK applications accessible on Bitcoin’s growing EVM ecosystem. By lowering the barrier to entry, zk-btc-sdk enables developers to build privacy-preserving dApps, identity solutions, compliance tools, and more — on the most secure blockchain base layer: Bitcoin.

    How it's made

    zk-btc-sdk is built as a Node.js CLI + SDK that abstracts the entire Zero-Knowledge development workflow into three simple commands: compile, deploy, and verify. At its core, it integrates several technologies: 1. Circom - used to define the ZK circuits. When a developer runs zk-btc-sdk compile, we invoke Circom to generate the .r1cs constraint system, .wasm witness generator, and intermediate artifacts. 2. SnarkJS (Groth16) - we run the trusted setup, generate proving/verification keys, and output the .zkey file. SnarkJS also powers proof generation and extraction of public signals during the verify step. 3. Solidity Verifiers - we export verifier.sol directly from SnarkJS and package it as a deployable contract. Instead of requiring developers to manage ABI and contract addresses, our SDK handles it internally. 4. Bitcoin EVM Deployment - for deployment, the CLI integrates with RPC endpoints of Rootstock, Citrea, and Botanix. A simple flag like --rootstock chooses the correct chain configuration. We automated the deployment so a verifier contract can go live in one command, using the developer’s private key. 5. Proof Verification Abstraction - when a developer runs zk-btc-sdk verify input.json, the SDK automatically: Generates a proof with the .wasm and .zkey. - Extracts public signals. - Calls the deployed verifier contract. - Returns a clean true/false response without exposing ABIs, addresses, or calldata. Hacky / Notable Engineering Bits - We containerized Circom + SnarkJS inside the SDK so developers don’t need to install them manually. This “batteries-included” approach makes zk-btc-sdk plug-and-play. - Deployment is designed to work even if the dev has no Web3 knowledge : no ABI handling, no gas management, no contract addresses exposed. - We added a --chain flag system (--rootstock, --citrea, --botanix) to make cross-chain deployments as simple as toggling one option. - All cryptographic complexity (pairings, elliptic curves, Groth16 details) is fully hidden — the SDK ensures that the dev never touches math or blockchain internals. Partner Tech Benefits - Bitcoin EVM chains (Rootstock, Citrea, Botanix) → provided the execution layer for Solidity verifiers, letting us prove that ZK on Bitcoin is possible. - Node.js ecosystem → gave us the tooling to package everything into a CLI that feels natural for developers. - Circom + SnarkJS → enabled fast prototyping with Groth16 proofs without needing to implement cryptography from scratch.