npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

zk-engine

v1.0.0

Published

A zero-knowledge proof SDK for compiling Circom circuits and deploying Solidity verifiers to Ethereum.

Readme

zk-engine

Write Circom. Compile. Deploy. Verify — all in just one click, Powered by Ethereum

A zero-setup toolkit to build, deploy, and verify ZK circuits using Circom — with no Web3 knowledge required.


✨ Features

  • 🧠 Write simple Circom circuits
  • 🛠 Compile to .r1cs, .wasm, .zkey, and Solidity verifier
  • 🚀 Deploy verifier to Ethereum with one command
  • ✅ Verify proofs using a single JavaScript function
  • 🧪 No Web3 scripting, no ABI handling — fully abstracted

📦 Installation

Install in your project:

npm install zk-engine

⚡ Usage

✅ Compile Circom circuit

npx zk-engine compile <path-to-your-circom-file>

This command:

  • Compiles your .circom file
  • Runs Groth16 trusted setup
  • Outputs .r1cs, .wasm, circuit_final.zkey, and verifier.sol
  • All files are saved in a folder named after your circuit (e.g., ./yourCircuit/)

✅ Test Compiled Circom Circuit

npx zk-engine test <path-to-generated-folder> <path-to-input.json>

This command:

  • Tests the zk System produced by the compile command
  • Uses inputs provided by the developer from input.json provided
  • produces proof.json and public.json
  • proof.json contains the smart contract parameters, which will be used to verify it onchain
  • public.json contains human verifiable outputs and proofs

✅ Deploy Compiled Circom Circuit

npx zk-engine deploy <path-to-generated-folder> <PRIVATE_KEY_OF_WALLET>

This command:

  • Compiles verifier.sol generated during compilation using solc
  • Deploys the compiled binary to Ethereum, taking fees from the provided wallet's private key

✅ Verify ZK Proof Programmatically

You can verify a proof directly using a single function call.

const { verifyProof } = require("zk-engine");

const result = await verifyProof({
  input: {
    // Your circuit input goes here
  },
  "<relative-path-to-generated-folder>",
});

console.log(result ? "✅ Valid proof" : "❌ Invalid proof");
  • You pass input (in the form of json) & Relative path to the generated folder, which was generated during compilation process
  • Automatically generates the proof and public signals
  • Formats the calldata for the Solidity verifier
  • Calls the deployed verifier contract on Ethereum and returns the result

You don’t need to manually use snarkjs or interact with web3 directly — the SDK abstracts it all for you.

🛠 Commands Overview

| Command | Description | |----------------------------------------------|--------------------------------------------------| | npx zk-engine compile <path-to-circuit> | Compiles the .circom file and runs Groth16 setup | | npx zk-engine test <output-folder> <path-to-input.json> | Tests the Circom logic locally using ZK Proofs | | npx zk-engine deploy <output-folder> <private-key> | Deploys the verifier contract to Ethereum Sepolia | | verifyProof(input,"<relative-path-to-output-folder>") (programmatic only) | Generates proof and verifies it on-chain using deployed contract |