circom Compiler circom has two compilation phases: The construction phase, where the constraints are generated. The code generation phase, where the code to compute the witness is generated.