Ethereum Foundation
Revm formal specification - Rust / EVM
A public formal specification for Revm, the Rust implementation of the Ethereum Virtual Machine.
Verified using our tool rocq-of-rust
Formal verification since 2021
We secure critical components in Rust, Solidity, and OCaml with formal verification workflows that follow code changes.
(* Revm — EVM step preserves invariant *)
Theorem step_preserves_invariant :
forall (pre post : State) (op : Instruction),
step pre op = post →
valid_state pre →
valid_state post.
Proof.
(* 124 lines · machine-checked *)
Qed.Public evidence
Public reports show the kind of proof work we deliver for blockchain infrastructure, smart contracts, and cryptographic systems.
Revm formal specification - Rust / EVM
A public formal specification for Revm, the Rust implementation of the Ethereum Virtual Machine.
Verified using our tool rocq-of-rust
ZK verification reports
Verification work on Keccak, branch equality, and LLZK-related proof artifacts for zero-knowledge systems.
Verified using our tool garden

Move type-checker - Rust
Formal verification of part of the type-checker for the Move language, focused on correctness-critical infrastructure code.
Elliptic curve library - Solidity
Formal verification work for a Solidity elliptic curve library where small arithmetic mistakes can invalidate protocol assumptions.
Verified using our tool rocq-of-solidity

Source-level verification tooling - Rust / Solidity
Source-level verification work that grew our Rust and Solidity toolchain, supporting maintainable proofs on production code.
Verified using our tools rocq-of-rust and rocq-of-solidity
Layer 1 verification - OCaml
Verification work on parts of the Tezos implementation, leading to our long-running OCaml verification toolchain.
Verified using our tool rocq-of-ocaml
Partners
What you can buy
We scope work around the small parts of a system where proof adds the most value.
A focused engagement for a code snapshot where a small set of high-value properties needs stronger evidence than tests can provide.
A recurring workflow for teams that need proofs to remain useful as requirements, code, or dependencies change.
Expert support for teams adopting formal methods or connecting production languages to Rocq/Lean proof workflows.
Where we fit
Smart contracts, protocols, and cryptographic infrastructure where bugs are public, costly, and immutable once deployed.
Token logic, AMMs, bridges, governance, and protocol-level invariants where a single bug can drain funds or break consensus.
Source-level verification for the production languages of Web3 using our translation tools and Rocq/Lean proof engineering experience.
Arithmetic, constraint systems, hash functions, and circuit-adjacent code, where implementation errors can invalidate security arguments or break interoperability between proving systems.
Open-source tooling and maintainable proof structures that make verification work replayable rather than one-off documentation.
Always advancing
Verification is only as strong as its scope and the precision of its specifications. We continuously innovate in both areas to provide the most extensive security coverage we can.
How projects work
A focused report, specifications, and machine-checked Rocq/Lean proof artifacts for the properties agreed at the start of the engagement.
Usually not at first. The best starting point is a narrow component where failure would be costly: a control module, protocol component, cryptographic routine, type-checker rule, or interface boundary.
Formal verification complements tests, audits, and code review. It gives machine-checked evidence for selected properties that are hard to cover exhaustively with tests alone.
Smart contracts, virtual machines, type-checkers, protocol logic, and cryptographic or zero-knowledge components.