Skip to main content

Welcome to ZK-Kit Documentation

ZK-Kit is a comprehensive suite of production-ready zero-knowledge libraries that simplify building privacy-preserving applications.

🚀 Quick Navigation

🎯 New to ZK-Kit?

Start here if you're new to zero-knowledge or ZK-Kit

What is ZK-Kit?
Why Zero-Knowledge?
Quick Start Guide

⚡ Ready to Build?

Jump straight into building with our guides

Installation
Your First Proof
Development Setup

📦 Explore Packages

Browse all available ZK-Kit packages

Packages Overview
Choose a Package

🎓 Learn Concepts

Understand zero-knowledge fundamentals

Zero-Knowledge Basics
Merkle Trees


📚 Documentation Sections

Introduction

Learn what ZK-Kit is, why zero-knowledge matters, and explore the ecosystem.

Getting Started

Install packages and create your first zero-knowledge proof.

Core Concepts

Understand the fundamentals of zero-knowledge technology.

Packages

Overview of all ZK-Kit packages.

Package Categories:

  • Merkle Trees: IMT, LeanIMT, SMT
  • Cryptography: EdDSA-Poseidon, Poseidon Cipher, Baby JubJub, Poseidon Proof
  • Utilities: Utils, Logical Expressions

For Developers

For Learners

Production Ready


📦 Available Packages

All packages verified from the ZK-Kit repository:

PackageDescriptionInstallation
@zk-kit/imtIncremental Merkle Treenpm i @zk-kit/imt
@zk-kit/lean-imtMemory-optimized IMTnpm i @zk-kit/lean-imt
@zk-kit/smtSparse Merkle Treenpm i @zk-kit/smt
@zk-kit/eddsa-poseidonEdDSA Signaturesnpm i @zk-kit/eddsa-poseidon
@zk-kit/poseidon-cipherPoseidon Encryptionnpm i @zk-kit/poseidon-cipher
@zk-kit/baby-jubjubElliptic Curve Opsnpm i @zk-kit/baby-jubjub
@zk-kit/poseidon-proofPoseidon Proofsnpm i @zk-kit/poseidon-proof
@zk-kit/utilsField Operationsnpm i @zk-kit/utils
@zk-kit/logical-expressionsBoolean Logicnpm i @zk-kit/logical-expressions
Peer Dependencies

Some packages require additional dependencies (like poseidon-lite or circomlibjs for hash functions). Check each package's npm page for specific requirements.

View detailed package documentation →


🌍 Multi-Language Support

ZK-Kit is available in 5 languages for different use cases:

LanguageRepositoryUse Case
TypeScript/JSprivacy-scaling-explorations/zk-kitWeb apps, Node.js (this documentation)
Circomprivacy-scaling-explorations/zk-kit.circomzkSNARK circuits
Noirprivacy-scaling-explorations/zk-kit.noirAztec protocol
Solidityprivacy-scaling-explorations/zk-kit.soliditySmart contracts
Rustprivacy-scaling-explorations/zk-kit.rustHigh-performance

View all language implementations →


🌟 Projects Using ZK-Kit

ZK-Kit is used in production by major projects (verified from repository):

  • Semaphore Protocol - Anonymous signaling (uses IMT & LeanIMT)
  • Worldcoin - Proof of personhood with 2M+ verified humans (uses IMT)
  • MACI - Anti-collusion voting
  • Zupass - Privacy-preserving tickets (uses LeanIMT)
  • Iden3 - Self-sovereign identity (uses SMT)

Learn more about the ecosystem →


🔗 External Resources


💬 Get Help


🚀 Ready to Start?

Choose your path:

  1. New to ZK?What is ZK-Kit?
  2. Ready to code?Quick Start
  3. Need a specific package?Choose a Package
  4. Deep dive?Core Concepts