/awesome-zk

A curated list of awesome ZK resources, libraries, tools and more.

Awesome Zero Knowledge

awesome list badge GitHub contributors pull requests welcome badge

A curated list of awesome ZK resources, libraries, tools and more.

Table of Contents

Basics

Projects

Zk-VM

Zk-Layer1

Zk-Layer2

Transpiler

Computing Infrastructure

Framework / SDK

Zk-Applications

Gaming

Payment

Mixer

Identity

Wallet

Crosschain

Marketplace

Fiat On-ramp

User Profiling

Data Infrastructure

Artificial Intelligence

DeFi / DEX

Tokens / NFT

Voting / Participation

Document Management

Hardware Acceleration

Trusted Execution Environment (TEE) Based Projects

Programming Languages

Name Ecosystem Type GitHub Documentation
Cairo StarkNet STARK-provable programs for general computation https://github.com/starkware-libs/cairo-lang https://cairo-lang.org/docs/
ZoKrates Python subset R1CS SNARKs Frontend https://github.com/Zokrates/ZoKrates https://zokrates.github.io
Leo Aleo Functional, statically-typed https://github.com/AleoHQ/leo https://developer.aleo.org/developer/language/layout/
Circom Typed JS Circuit compiler https://github.com/iden3/circom https://docs.circom.io
Noir Aztec Private contract language https://github.com/noir-lang/noir https://noir-lang.github.io/book/index.html
Snarky Mina R1CS SNARKs OCaml frontend https://github.com/o1-labs/snarky /
Zinc zkSync Turing-complete smart contract https://github.com/matter-labs/zinc /
Juxiv Anoma Functional https://github.com/anoma/juvix https://juvix.readthedocs.io/en/latest/index.html
ZKPDL / High-level https://github.com/brownie/cashlib http://cs.brown.edu/research/brownie/usenix10.pdf
zkVM / Stack machine with a string of bytecode representing ZkVM instructions https://github.com/stellar/slingshot/tree/main/zkvm https://github.com/stellar/slingshot/files/3164245/zkvm-whitepaper-2019-05-09.pdf
lurk Protocol Labs Lurk is a statically scoped dialect of Lisp, influenced by Scheme and Common Lisp https://github.com/lurk-lang/lurk-rs https://github.com/lurk-lang/lurk/blob/master/spec/v0-1.md

Programming Libraries

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

Advanced Topics

PLONK

Groth16

Halo

Probabilistic Proof Systems

Pinocchio

Bulletproofs

Hash Functions

Systems

Quadratic Span Programs

Zether

Anonymous Zether

Quisquis

Zk-VM

Slush: Fractal Scaling

DIZK: Distributed ZKP

Network Privacy

Tools

Auditing and Consulting

Books

Discussions

Communities