Development

Development Environments

This guide covers setting up your development environment for building zero-knowledge circuits with Fermah's supported proof systems.

System Requirements

For a complete development environment, you'll need:

Basic Setup

Core system requirements from our Quick Start guide

Docker/Orbstack

Container runtime setup for development

Database Setup

Database configuration for local development

IDE Setup

VSCode Extensions

  1. Circuit Development

  2. Testing & Debugging

Interactive Development

  • zkREPL

    • Browser-based circuit editor
    • Real-time syntax checking
    • Code sharing capabilities
    • Interactive testing
  • RISC Zero Playground

    • Guest program development
    • Code examples
    • Interactive documentation
    • Testing environment

Language-Specific Setup

Circom (Groth16)

# Install Node.js dependencies
npm install -g circom

# Install circuit templates
npm install circomlib

RISC Zero

# Install Rust toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Add RISC Zero target
rustup target add riscv32im-risc0-zkvm-elf

Valida

# Install LLVM dependencies
sudo apt-get install llvm-dev libclang-dev clang

# Install Valida toolchain
cargo install valida-cli

Editor Configuration

VSCode Settings

{
  "editor.formatOnSave": true,
  "circom.trace.server": "verbose",
  "rust-analyzer.checkOnSave.command": "clippy",
  "[circom]": {
    "editor.defaultFormatter": "iden3.circom"
  }
}

Git Configuration

# Circuit artifacts
*.r1cs
*.sym
*.wasm
*.zkey

# Build directories
target/
build/
node_modules/

# IDE files
.vscode/
.idea/
*.swp

Next Steps

  1. Start writing circuits
  2. Learn about testing
  3. Return to overview

Remember: Fermah handles all proof generation - you only need to focus on writing your circuits.

Previous
Introduction