A curated list of awesome ZK resources, libraries, tools and more. For a ZKP knowledge base, please see https://kb.delendum.xyz/
Join the discussion group chat with other developers and researchers
- Basics
- Projects
- Programming Languages
- Programming Libraries
- Developer Tools
- Auditing and Consulting
- Validator Services
- Books
- Discussions
- Communities
- Advanced Topics
- Prerequisite understanding questions
- ZKP Overview: History, Proving Systems, Circuits, Compilers
- Introduction
- Vitalik's blogs for STARKs
- Explaining STARKs
- zkSNARKs in a nutshell
- The MoonMath Manual to zk-SNARKs
- Comments on paper: zkSNARKs in a Nutshell by Aaron
- An approximate introduction to how zk-SNARKs are possible
- Explaining SNARKs
- Part I: Homomorphic Hidings
- Part II: Blind Evaluation of Polynomials
- Part III: The Knowledge of Coefficient Test and Assumption
- Part IV: How to make Blind Evaluation of Polynomials Verifiable
- Part V: From Computations to Polynomials
- Part VI: The Pinocchio Protocol
- Part VII: Pairings of Elliptic Curves
- Important landmarks for zk-SNARKs
- Circuit optimization
- Introduction to Layer 2
- Matter Labs zkEVM
- Hermez zkEVM
- Mir Protocol
- Scroll and their zkEVM
- zCloak Space
- Delphinus zkWASM
- Appliedzkp: Circuits for zkEVM
- ConsenSys zkEVM and their gnark library
- zkMove: bytecode VM and their github
- zkRiscV: RV32I Risc-V instruction set
- TinyZKEVM
- OlaVM: An Ethereum compatible ZKVM
- Tritron VM
- Sovereign Labs: zkEVM on Risc0
- Aleo: A SDK for Zero-Knowledge Transactions
- Iron Fish: the universal privacy layer for crypto
- Mina: a payment system using a succinct blockchain
- Celo: EVM compatible proof-of-stake layer-1 and their Light clients with ZKPs
- Zeeka Network: a light and scalable blockchain using ZKPs
- quark: decentralized state machine with STARK proofs
- Lelantus: transaction confidentiality and anonymity
- Neptune: a new privacy layer-one blockchain
- Aztec: Scalable Privacy on Ethereum
- StarkNet: permissionless decentralized ZK-Rollup
- zkSync: an EVM-compatible ZK Rollup
- Polygon Miden: a STARK-based, Zero-Knowledge rollup
- Polygon Zero: a layer 2 scaling solution for Ethereum
- Taikocha: a zkEVM-based general-purpose zkRollup network
- Twilight: Layer 2 for Private Computation
- Orbis: A Layer 2 ZK-Rollup Scaling Solution Built on Cardano
- Radius: MEV-resistant ZK-Rollups with Practical VDE (PVDE)
- ZEXE on Plasma: An implementation of ZEXE on Ethereum
- Nightfall: Private Token Transaction on Ethereum
- Starlight: Generate a zApp from a Solidity contract
- Warp: transpile Ethereum smart contracts to Cairo
- zkay: A Language for Private Smart Contracts on Ethereum
- Risc0: a zero-knowledge verifiable general computing platform
- CirC: Compiler Infrastructure for Cryptosystems and Verification
- Trustless Labs: ZK-friendly Multi-rollup Architecture for Web3 Applications
- Espresso Systems: single-shot scaling & privacy solution
- Light Protocol: DeFi Privacy Infrastructure that Scales
- Dark Forest: an MMO space-conquest game and their ZK Circuit Walkthrough
- Isaac: a physics-powered onchain reality on Starknet and their blog
- Crypto Maze: action-packed MMO
- Zordle: the first end-to-end web app built using Halo 2 ZK proofs
- Zcash: a privacy-protecting, digital currency
- Monero: private, decentralized cryptocurrency
- Manta: a Plug and Play Private DeFi Stack
- SwapCT: Swap Confidential Transactions for Privacy-Preserving Multi-Token Exchanges
- Zef: Low-latency, Scalable, Private Payments and their Slides
- Amona: A protocol for private, asset-agnostic digital cash and their use of recursive zkps
- ZETH: Integrating Zerocash on Ethereum
- CoinJoin: an open-source way to mix bitcoins
- Tornado Cash: Introducing Private Transactions On Ethereum
- Otter Cash: A privacy layer for the Solana ecosystem
- Mobius: Trustless Tumbling for Transaction Privacy
- TumbleBit: An Untrusted Bitcoin-Compatible Anonymous Payment Hub
- Mixcoin: Anonymity for Bitcoin with accountable mixes
- CashShuffle: background coin shuffling for Bitcoin Cash
- MicroMix: A noncustodial Ethereum mixer
- Juicer Protocol: trusted and secure
- zkKYC: A solution concept for KYC without knowing your customer
- zkID.app: A Privacy-Preserving Passport to the Web 3.0 World
- Notebook: a zero-knowledge B2B2C identity protocol
- Iden3: future-proof tech stack for self-sovereign identity
- Polygon ID: identity system with programmable privacy
- Sealance: building financial compliance into digital currencies
- Humanode: biologically verified human nodes for a fair financial system
- OutDID: your zero-knowledge, decentralized KYC filter of blockchain users
- IdentityBlockchain: state-certified electronic identities to establish blockchain identities
- Argent: smart contract wallet based on zkSync
- Numio: Layer 2 focused wallet built on zkSync
- Zkopru: Affordable Ethereum Privacy Wallet
- Bunkyr: zero‑knowledge security without seed phrases or backup codes
- Wasabi Wallet: non-custodial, privacy-focused Bitcoin wallet
- ZkLink: cross chain amm swap protocol powered by ZK-Rollup
- Mystiko Network: Anonymous Protocol for a Cross-Chain Network
- Penumbra: a shielded, cross-chain network
- Zecrey: Bringing Cross-chain Privacy to Digital Assets
- Suez: move Eth to the Starknet ecosystem
- ZKCross: a trustworthy cross-chain protocol built with multichain zkRollup
- Electron Labs: ZK Light Clients for NEAR Rainbow Bridge
- Nil Foundation: Mina's bridge to Ethereum
- ZeroPool: a fully private multi-blockchain solution
- Raze Network: Multichain Privacy Middleware
- Zendoo: A zk-SNARK enabled verifiable cross-chain transfer protocol and their whitepaper
- Modulo Zero: on-chain solution for private data exchange and their Repo
- Ruby Protocol: Building a Cross-chain Cryptographic Infrastructure for Data Monetization
- zkPoD: A decentralized system for data exchange
- FirstBatch: create a representation of your identity from your social data
- Interep: verify users' reputation without exposing their identities
- Filecoin: Zero Knowledge and the Filecoin Network
- ZK Machine Learning: truly private machine learning, with zk-SNARKs and blockchain
- Nectar Protocol: Web3 infrastructure for healthcare and their documentation
- zk-SQL: ZK-based engine for self-sovereign SQL queries
- zk-MNIST: web frontend app + Jupyter notebook with ML model generation and their demo
- zkCNN: GKR-based zero-knowledge proof protocol for CNN model inference and their paper
- Modulus Labs: bringing powerful ML models on-chain and their blogs
- Panther Protocol
- Loopring Launches zkRollup Exchange
- Railgun: brings privacy to cryptocurrencies
- EdgeSwap: Ethereum-based layer 2 trading protocol
- ZigZag: ZK Rollup order book DEX
- Mute: a ZK-Rollup based AMM exchange
- StealthDrop: Anonymous Airdrops using ZK proofs
- ZKP Private Airdrop and their Zk Merkle Airdrop Library
- zk-NftMint: Mint an NFT if you know a secret and their contract
- Immutable X: the first layer-2 scaling solution for NFTs on Ethereum
- Zero Knowledge Message Board by nulven, yush_g and their article
- Semaphore: a privacy gadget built on Ethereum
- zkC.R.E.A.M: Confidential Reliable Ethereum Anonymous Mixer
- Cabal: create credibly pseudonymous channels based on members' Ethereum activity
- OVOTE: Offchain Voting with Onchain Trustless Execution and their document
- Scaffold-ETH: Prove Membership with Circom and Zero Knowledge
- Double Blind: semi-anonymously sign messages for a group of people and their documentation
- Vocdoni: A decentralized self sovereign governance platform and their architecture
- Hardware for ZKPs & VDFs with Supranational and their Practical SNARK-based VDF
- PipeZK: Accelerating Zero-Knowledge Proof with a Pipelined Architecture
- Ingonyama: building a ZK processing unit and their slides
- ZKAccel: Accelerated ZKP as a Service
- DZK: decentralized zero-knowledge proof platform
Name | Host Language | Features | GitHub |
---|---|---|---|
Libsnark | C++ | General-purpose proof systems, gadget libraries | https://github.com/scipr-lab/libsnark |
Bulletproofs | Rust | Single-party proofs, online multi-party computation, R1CS | https://github.com/dalek-cryptography/bulletproofs |
Bellman | Rust | Circuit traits, primitive structures, basic gadget implementations | https://github.com/zkcrypto/bellman |
gnark | Go | High level API with frontend and backend to design circuits | https://github.com/ConsenSys/gnark |
Arkworks | Rust | R1CS, curves, Groth16, finite field, curves | https://github.com/arkworks-rs |
Circomlib | Javascript | Circom templates | https://github.com/iden3/circomlib |
libSTARK | C++ | ZK-STARK library | https://github.com/elibensasson/libSTARK |
plonky2 | rust | SNARK implementation based on techniques from PLONK and FRI | https://github.com/mir-protocol/plonky2 |
plonk | rust | Pure Rust implementation of the PLONK ZKProof System | https://github.com/dusk-network/plonk |
Spartan | rust | High-speed zkSNARKs without trusted setup | https://github.com/microsoft/Spartan |
DIZK | Java | Distributed polynomial interpolation, Lagrange polynomials, multi-scalar multiplication | https://github.com/scipr-lab/dizk |
wasmsnark | Javascript | Generate zkSnark proofs and verify from web browser | https://github.com/iden3/wasmsnark |
jellyfish | rust | Rust Implementation of the PLONK ZKP System and Extensions | https://github.com/EspressoSystems/jellyfish |
libiop | C++ | IOP-based zkSNARKs | https://github.com/scipr-lab/libiop |
Nova | rust | Recursive SNARKs without trusted setup | https://github.com/microsoft/Nova |
- Circom: zkSnark circuit compiler
- Shield: a development framework for circom developers
- plonkit: zkSNARK toolkit to work with circom DSL in PLONK proof system
- Library: ZK-Garage/Plonk
- zk-ECDSA: zkSNARKs for ECDSA
- ZoKrates: a toolbox for zkSNARKs on Ethereum
- Ecne: an engine for verifying the soundness of R1CS constraints
- Arkworks: an ecosystem for developing with zkSNARKs
- Snarkjs: zkSNARK implementation in JavaScript & WASM
- zkREPL: an in-browser collaborative development environment
- Picus: Symbolic Virtual Machine for Automated R1CS Verification
- Papyrus: A Symbolic Execution Tool for Cairo
- emp-zk: Efficient and Interactive Zero-Knowledge Proofs
- crrl: Rust library for cryptographic research
- Atlas Protocol: Zero-Knowlege Blockchain Development Platform
- ABDK
- Least Authority
- Hashcloak
- Taurus
- Common Prefix
- ZK Labs
- Diligence
- Trail of Bits
- Kudelski Security
- Proofs, Arguments, and Zero-Knowledge (Justin Thaler, 2022)
- A Graduate Course in Applied Cryptography (Dan Boneh and Victor Shoup, 2020)
- Why Dark Forest Matters: A Good Game, not a Crypto Game
- Six Moonshot ZK Applications
- A Socratic Dialogue to Come Up With a Secure ZK Message Board Architecture
- The Strongest Crypto Gaming Thesis
- Hardware Acceleration for Zero Knowledge Proofs
- How do trusted setups work?
- 10 zkApps Use Cases on Mina Protocol
- Programming Languages in ZKP
- Harmony zkDAO
- Zero Knowledge University
- ZK Hash Bounties
- Zero Knowledge Forum
- 0xPARC: Program for Applied Research in Cryptography
- ZPrize: accelerate zero-knowledge cryptography
- zkMesh: a monthly newsletter
- ZKHack Discord: Read, discuss, and implement ZK in Rust/Python (Fridays at 11:30ET)
- ZKP Discussion Group Chat by Delendum: idea sharing, seeking advice/review/co-publish
- Understanding PLONK
- Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge
- Vitalik Buterin: Halo and more: exploring incremental verification and SNARKs without pairings - Proof size reduction
- Recursive Proof Composition without a Trusted Setup
- The halo2 Book
- Bulletproofs: Short Proofs for Confidential Transactions and More
- Bulletproofs+: Shorter Proofs for Privacy-Enhanced Distributed Ledger