Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/risc0/risc0/llms.txt

Use this file to discover all available pages before exploring further.

Blockchain Integration Overview

RISC Zero enables you to prove computation with the zkVM and verify the results on-chain, unlocking powerful new blockchain applications.

How It Works

The zkVM acts as a coprocessor to smart contract applications, offloading computationally intensive and gas-expensive operations off-chain while maintaining cryptographic guarantees of correctness.
STARK proofs generated by the zkVM can be wrapped in Groth16 SNARKs, which are significantly smaller and faster to verify on-chain.

Key Benefits

  • Gas Optimization: Move expensive computations off-chain
  • Extended Functionality: Implement operations difficult or impossible in smart contracts (e.g., ed25519 signature verification, HTML parsing)
  • Verifiable Results: Cryptographic proofs ensure computation integrity
  • Flexibility: Write guest programs in Rust instead of Solidity

Proof Types

STARK Proofs

Generated directly by the zkVM:
  • Larger proof size
  • Faster proving time
  • Suitable for off-chain verification

Groth16 Proofs (SNARK)

Wrapped STARK proofs optimized for on-chain verification:
  • Smaller proof size (~200-300 bytes)
  • Constant verification time
  • Gas-efficient on-chain verification
  • Requires trusted setup ceremony
Groth16 proving requires additional setup. See Contract Verification for details.

Supported Blockchains

Ethereum

Full support with verifier contracts and tooling:
  • Verifier contracts deployed on mainnet and testnets
  • Foundry template for quick starts
  • Steel library for Ethereum state proofs

Other EVM Chains

The verifier contracts are compatible with any EVM-compatible chain.

Quick Start

The fastest way to get started is using the Boundless Foundry Template:
forge init my-project --template boundless-xyz/boundless-foundry-template

Key Resources

risc0-ethereum Repository

Verifier contracts, examples, and Steel library

Steel Library

View call proofs for Ethereum state

Foundry Template

Starter template with remote proving

Zeth zkEVM

Type Zero zkEVM implementation

Example Use Cases

  1. State Proofs: Prove Ethereum state without running a full node
  2. zkEVM: Prove EVM block execution (see Zeth)
  3. Cross-chain Verification: Verify data from one chain on another
  4. Privacy-Preserving Logic: Execute sensitive business logic off-chain
  5. Complex Computations: Machine learning inference, cryptographic operations

Architecture

┌─────────────────┐
│   Guest Code    │  <- Your Rust program
│    (zkVM)       │
└────────┬────────┘

         v
┌─────────────────┐
│  STARK Proof    │  <- Generated by zkVM
└────────┬────────┘

         v (optional)
┌─────────────────┐
│ Groth16 Proof   │  <- Wrapped for on-chain use
└────────┬────────┘

         v
┌─────────────────┐
│ Smart Contract  │  <- Verifies on-chain
│   (Solidity)    │
└─────────────────┘

Next Steps

1

Ethereum Integration

Learn how to deploy and interact with verifier contracts on EthereumView Ethereum Guide →
2

Contract Verification

Understand how to verify proofs on-chain in your smart contractsView Verification Guide →
3

Generate Groth16 Proofs

Set up the Groth16 prover for on-chain verificationView Groth16 Setup →