zk-btc-sdk

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

zk-btc-sdk

Created At

ETHGlobal New Delhi

Project Description

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.
background image mobile

Join the mailing list

Get the latest news and updates