circom
Installation
SKILL.md
Skill is based on circom 2.x, generated at 2026-02-24.
circom is a domain-specific language and compiler for defining arithmetic circuits used in zero-knowledge proving systems (e.g. with snarkjs). Circuits are built from parameterized templates and components; the compiler outputs R1CS (and optionally WASM/C++ witness generators). This skill focuses on language semantics, constraint generation, and practical usage for agents.
Core References
| Topic | Description | Reference |
|---|---|---|
| Signals | Input/output/intermediate, assignment operators, public/private, immutability | core-signals |
| Templates and components | Definition, instantiation, dot notation, arrays, parallel and custom templates | core-templates-components |
| Constraint generation | Quadratic constraints, ===, <== vs <-- + === | core-constraints |
| Main component | Entry point, public input list, single main | core-main-component |
| Pragma and include | Version, custom_templates, include, -l | core-pragma-include |