Skip to main content

ZK-Kit Packages Overview

Explore all available packages in the ZK-Kit ecosystem.

Package Categories

🌳 Merkle Trees

Build privacy-preserving membership systems.

PackageDescriptionInstallUse When
@zk-kit/imtIncremental Merkle Treenpm i @zk-kit/imtStandard choice for most applications
@zk-kit/lean-imtMemory-optimized IMTnpm i @zk-kit/lean-imtResource-constrained environments
@zk-kit/smtSparse Merkle Treenpm i @zk-kit/smtKey-value storage + non-membership proofs

🔐 Cryptography

Zero-knowledge friendly cryptographic primitives.

PackageDescriptionInstallUse When
@zk-kit/eddsa-poseidonEdDSA signaturesnpm i @zk-kit/eddsa-poseidonDigital signatures in ZK circuits
@zk-kit/poseidon-cipherPoseidon encryptionnpm i @zk-kit/poseidon-cipherEncrypt/decrypt data for ZK
@zk-kit/baby-jubjubElliptic curve opsnpm i @zk-kit/baby-jubjubLow-level curve operations
@zk-kit/poseidon-proofPoseidon proofsnpm i @zk-kit/poseidon-proofGenerate zk-SNARK proofs

🛠️ Utilities

Helper functions for zero-knowledge development.

PackageDescriptionInstallUse When
@zk-kit/utilsField operations & conversionsnpm i @zk-kit/utilsNeed field arithmetic or conversions
@zk-kit/logical-expressionsBoolean logicnpm i @zk-kit/logical-expressionsBoolean expressions in ZK

Quick Start by Use Case

I want to build...

Anonymous Voting

npm i @zk-kit/imt
# + peer dependencies (check npm page)

→ See Semaphore and MACI examples

Private Airdrops

npm i @zk-kit/imt @zk-kit/eddsa-poseidon
# + peer dependencies (check npm page)

→ See Your First Proof guide

Identity System

npm i @zk-kit/imt @zk-kit/eddsa-poseidon @zk-kit/poseidon-cipher
# + peer dependencies (check npm page)

→ See Worldcoin implementation

Key-Value Store with Proofs

npm i @zk-kit/smt
# + peer dependencies (check npm page)

→ See Iden3 implementation

Package Status

Audited Packages ✅

These packages have undergone security audits:

  • @zk-kit/imt - Audited by Trail of Bits
  • @zk-kit/eddsa-poseidon - Audited
  • @zk-kit/baby-jubjub - Audited
  • @zk-kit/poseidon-cipher - Audited
  • @zk-kit/utils - Audited

View Audit Reports →

In Development 🚧

  • 🚧 @zk-kit/groth16 - Coming soon
  • 🚧 @zk-kit/plonk - Coming soon

Installation Patterns

Minimal Setup

Just Merkle trees:

npm i @zk-kit/imt
# Check npm for peer dependencies

Standard Setup

Trees + signatures:

npm i @zk-kit/imt @zk-kit/eddsa-poseidon
# Check npm for peer dependencies

Full Stack

All main packages:

npm i @zk-kit/imt @zk-kit/lean-imt @zk-kit/smt \
@zk-kit/eddsa-poseidon @zk-kit/poseidon-cipher \
@zk-kit/utils poseidon-lite crypto-js

Language Variants

ZK-Kit is available in multiple languages:

JavaScript/TypeScript

npm i @zk-kit/imt

npm package → | GitHub →

tip

Check the package's npm page for peer dependencies (e.g., hash functions).

Circom

# Clone circuits repository
git clone https://github.com/privacy-scaling-explorations/zk-kit.circom

Repository →

Solidity

npm i @zk-kit/imt.sol

Repository →

Noir

# Add to Nargo.toml
[dependencies]
zk-kit = { tag = "v0.1.0", git = "https://github.com/privacy-scaling-explorations/zk-kit.noir" }

Repository →

Rust

cargo add zk-kit

Repository →

Bundle Sizes

PackageMinifiedMin + GzipTree-Shakeable
@zk-kit/imt12 KB4 KB
@zk-kit/lean-imt8 KB3 KB
@zk-kit/smt15 KB5 KB
@zk-kit/eddsa-poseidon10 KB3.5 KB
@zk-kit/poseidon-cipher6 KB2 KB
@zk-kit/baby-jubjub8 KB2.5 KB
@zk-kit/utils5 KB1.5 KB

Browser Support

All packages support modern browsers with:

  • ES2020+
  • BigInt support
  • WebAssembly (for some operations)

See the Installation Guide for browser configuration.

Next Steps

Resources