A curated list of repos related to Circom.
- Cryptographic primitives
- Provers
- Code editors & tooling
- Tutorials & docs
- Papers
- Projects using Circom
- circomlib - main 'standard lib' in Circom
- circom-ecdsa - secp256k1 ECDSA operations
- circom-pairing - BLS12-381 curve
- zk-attestor - Scalable on-chain trustless attestations to data from any past Ethereum block or state (ethereum storage proofs)
- keccak256-circom - keccak256 implementation
Cryptographic primitives implemented in other languages which are compatible with Circom implementations
- Javascript
- circomlibjs - Javascript library to work with circomlib circuits
- Go
- go-iden3-crypto - Poseidon & mimc hash, babyjubjub elliptic curve
- arbo - Efficient MerkleTree compatible with circomlib, which parallelizes computation by CPUs
- go-merkletree - MerkleTree compatible with circomlib
- Rust
- poseidon-rs - Poseidon hash function compatible with circomlib
- babyjubjub-rs - BabyJubJub elliptic curve compatible with circomlib
- snarkjs - zkSNARK implementation in JavaScript & WASM
- rapidsnark - zkSNARK proof generation written in C++ and intel assembly
- ark-circom - Arkworks bindings to Circom's R1CS, for Groth16 Proof and Witness generation in Rust
- go-circom-prover-verifier - Go implementation of the Groth16 zkSNARK Prover and Verifier compatible with Circom
- go-circom-witnesscalc - Witness Calculator in go, calling WASM
- zkrepl - Online playground for Circom circuits
- vscode plugin - VSCode syntax highlighting plugin
- vim plugin - Vim syntax highlighting plugin
- Shield Cli - SHIELD is a development framework for circom developers. SHIELD is a tool to provide libraries, plugins, and testing tools to ensure code quality and security.
- Circomspect - static analyzer and linter for the Circom programming language
- docs.circom.io - official Circom docs
- Circom & Snarkjs talk - Jordi Baylina's talk at zkSummit 2019
- Electron Labs - Intro to Circom - Usage of language syntax and programming practices
- BattleZips Zero Knowledge Crash Course - Tutorial on building a battleship game on Ethereum & Circom
- Introduction to Zero Knowledge Proof - Tutorial inspired by the presentation "All About the ZkVerse | Polygon" performed by Jordi Baylina at EthDenver22
Papers on Circom related constructions and primitives implemented in the circomlib standard library
- CIRCOM: A Robust and Scalable Language for Building Complex Zero-Knowledge CircuitsComplex Zero-Knowledge Circuits
- Sparse Merkle Trees
- Baby Jubjub Elliptic Curve & EIP-2494
- Poseidon: A New Hash Function for Zero-Knowledge Proof Systems
- hermeznetwork/circuits - Hermez network circuits
- iden3/circuits - Circom circuits used by the iden3 core protocol
- appliedzkp/maci - Minimal anti collusion infrastructure
- appliedzkp/semaphore - A privacy gadget for creating anonymous proof of membership on Ethereum
- tornadocash/tornado-core - Non-custodial private transactions on Ethereum
- worldcoin/semaphore-rs - Rust support library for using semaphore
- 0xPARC/zk-group-sigs - Group signatures implemented with zkSNARKs
- vocdoni/zk-franchise-proof-circuit - Census proof anonymous voting circuit
- web3-master/zksnark-sudoku - Sudoku verifier using zkSNARK and circom.