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
Circuit Development
- Circom Syntax Highlighting
- Rust Analyzer (for RISC Zero)
- LLVM IR Syntax (for Valida)
Testing & Debugging
Interactive Development
- Browser-based circuit editor
- Real-time syntax checking
- Code sharing capabilities
- Interactive testing
- 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
Recommended .gitignore
# Circuit artifacts
*.r1cs
*.sym
*.wasm
*.zkey
# Build directories
target/
build/
node_modules/
# IDE files
.vscode/
.idea/
*.swp
Next Steps
Remember: Fermah handles all proof generation - you only need to focus on writing your circuits.