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.
- What is ZK-Kit?
- Why Zero-Knowledge?
- Language Implementations - TS, Circom, Noir, Solidity, Rust
- Comparison with Other Libraries
- Ecosystem & Projects
Getting Started
Install packages and create your first zero-knowledge proof.
- Installation
- Quick Start - 2-minute tutorial
- Your First Proof
- Development Setup
- TypeScript Configuration
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
🎯 Popular Topics
For Developers
- Quick Start - Build your first proof in 2 minutes
- Package Selection Guide - Choose the right package
- TypeScript Setup - Configure TypeScript
For Learners
- Zero-Knowledge Basics - Understand ZK fundamentals
- Merkle Trees Explained - How Merkle trees work
- Your First Proof - Step-by-step guide
Production Ready
- Installation Guide - Install all packages
- Development Setup - Set up your environment
- Ecosystem - See who's using ZK-Kit
📦 Available Packages
All packages verified from the ZK-Kit repository:
| Package | Description | Installation |
|---|---|---|
| @zk-kit/imt | Incremental Merkle Tree | npm i @zk-kit/imt |
| @zk-kit/lean-imt | Memory-optimized IMT | npm i @zk-kit/lean-imt |
| @zk-kit/smt | Sparse Merkle Tree | npm i @zk-kit/smt |
| @zk-kit/eddsa-poseidon | EdDSA Signatures | npm i @zk-kit/eddsa-poseidon |
| @zk-kit/poseidon-cipher | Poseidon Encryption | npm i @zk-kit/poseidon-cipher |
| @zk-kit/baby-jubjub | Elliptic Curve Ops | npm i @zk-kit/baby-jubjub |
| @zk-kit/poseidon-proof | Poseidon Proofs | npm i @zk-kit/poseidon-proof |
| @zk-kit/utils | Field Operations | npm i @zk-kit/utils |
| @zk-kit/logical-expressions | Boolean Logic | npm i @zk-kit/logical-expressions |
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:
| Language | Repository | Use Case |
|---|---|---|
| TypeScript/JS | privacy-scaling-explorations/zk-kit | Web apps, Node.js (this documentation) |
| Circom | privacy-scaling-explorations/zk-kit.circom | zkSNARK circuits |
| Noir | privacy-scaling-explorations/zk-kit.noir | Aztec protocol |
| Solidity | privacy-scaling-explorations/zk-kit.solidity | Smart contracts |
| Rust | privacy-scaling-explorations/zk-kit.rust | High-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
- GitHub: github.com/privacy-scaling-explorations/zk-kit
- npm: npmjs.com/org/zk-kit
- Discussions: GitHub Discussions
💬 Get Help
🚀 Ready to Start?
Choose your path:
- New to ZK? → What is ZK-Kit?
- Ready to code? → Quick Start
- Need a specific package? → Choose a Package
- Deep dive? → Core Concepts