OpenVM
The modular zkVM framework
applications
OpenVM is modular, giving you the flexibility to adopt ZK regardless of language and stack, or optimize for every last bit of performance.
Most zkVMs replicate the design of physical processors – we reimagined the zkVM from first principles for modularity.

A no-CPU architecture built for ZK, not physical computers
Traditional zkVMs were based on the constraints of physical processors, not ZK. OpenVM’s composable design allows for execution traces to be distributed across different circuits, minimizing redundant computations and allowing modular extensions.

Extensions for anything you need
All functionality in OpenVM, including RISC-V execution, proof aggregation, and elliptic curve operations, is implemented through VM extensions. Developers can use existing extensions like RV32IM, Keccak, SHA2, bigint, or elliptic curve arithmetic, or implement their own VM extensions without forking.
Features
Fully-featured, out-of-the-box
OpenVM is MIT-licensed and production-ready
Compile Rust to OpenVM assembly using our RISC-V toolchain
Prove Ethereum mainnet blocks for under $0.001 per transaction
VM extensions for Keccak, SHA2, BigInt, Modular arithmetic, Weierstrass and Edwards curves (ECDSA, ed25519, pairings on BLS12-381, and BN-254)
Continuations and proof aggregation to prove large executions in parallel
Verify onchain using the Solidity SDK
Add custom VM extensions without forking or modifying the core OpenVM libraries