Welcome! Background Getting started Installation Our first circom program Our second circom program Our first zero-knowledge proof The baby jubjub elliptic curve Language circom fundamentals Templates & components Pragma The Main component Include Functions Syntax Identifiers Reserved keywords Comment lines Data types Basic operators Control flow Signals & variables Variables and mutability Constraint generation Scoping Code quality Code assertion Debugging operations circom insight circom compiler Compiler messages Unknowns circom library Generating zero-knowledge proofs circom & snarkJS