circom

Compile arithmetic circuits into R1CS, WASM, and symbol files.

Updated Sep 29, 2025
One-click install
npx skills add https://github.com/cyotee/manamesh --skill circom-cyotee
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: circom
Source: https://github.com/cyotee/manamesh/tree/main/.opencode/skills/circom
Command: npx skills add https://github.com/cyotee/manamesh --skill circom-cyotee

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Circom provides a language and toolchain for writing arithmetic circuits used in zero-knowledge proofs, generating key artifacts like R1CS, WASM, and symbol files to enable efficient circuit deployment and testing.

Core Features & Use Cases

  • Circuit Authoring: Write modular circuits in .circom and reuse components across projects.
  • Compilation & Artifacts: Produce R1CS, WASM, .sym, and optional C/WAT outputs for verification and integration.
  • Use Case: Build a simple circuit (e.g., Num2Bits) and generate a WASM witness calculator for local testing and proof generation.

Quick Start

Install circom globally and compile your circuit to generate the R1CS, WASM, and symbol files.

Frequently Asked Questions about circom

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I compile arithmetic circuits for zero-knowledge proofs to generate R1CS and WASM files?

Generating R1CS and WASM files for zero-knowledge proofs involves compiling .circom arithmetic circuits using the Circom compiler. It produces the required R1CS constraints, WASM witness calculators, and symbol files to enable efficient zk-SNARK circuit testing and deployment.

What is a WASM witness calculator and when do I need it for zk-SNARK workflows?

A WASM witness calculator is a WebAssembly module generated by compiling .circom circuits. You need it for local zk-SNARK testing and proof generation to compute and validate witness values against the generated R1CS constraints.

How do I build and test a simple zero-knowledge circuit like Num2Bits?

To build and test a simple zero-knowledge circuit like Num2Bits, author the circuit logic in a .circom file and compile it. This process generates the R1CS constraints and a WASM witness calculator, which you can then use locally to test inputs and generate proofs.

Should I use circom_old or the Rust circom compiler for new zero-knowledge projects?

You should use the Rust circom compiler for new zero-knowledge projects, as circom_old is deprecated. The Rust version provides the current standard for compiling arithmetic circuits, generating R1CS, WASM, and symbol files for modern zk-SNARK workflows.

What output formats can I generate when compiling zk circuits for zero-knowledge proofs?

When compiling zk circuits for zero-knowledge proofs, you can generate R1CS, WASM, and .sym symbol files as standard outputs. Additionally, the compiler supports optional C and WAT outputs to integrate circuit verification and witness generation into various environments.

Can I reuse modular circuit components across different zero-knowledge proof projects?

Yes, you can reuse modular circuit components across different zero-knowledge proof projects. Circuit authoring in .circom files allows you to define modular circuits and reuse these components, streamlining the compilation and deployment of R1CS and WASM artifacts.