Practical overview
When it fits
Use Evmone when an Ethereum client or C++ application needs a reusable EVM implementation rather than a complete end-user blockchain application.
Who it is for
- Ethereum client developers
- C++ developers embedding EVM execution
- Teams building self-hosted Ethereum-compatible execution components
Documented uses
- Execute EVM smart-contract code through a standalone implementation.
- Replace or integrate an Ethereum client's EVM through the EVMC interface.
- Build, test and benchmark an EVM execution module from source.
Requirements & limits
The repository is public and licensed under Apache-2.0. Source builds are documented for Linux, macOS and Windows; the technical classification also identifies server and self-hosted use.
- EVMC is the documented integration interface.
- The project requires C++20.
- Baseline is the default interpreter; Advanced adds extensive bytecode analysis, indirect call threading and block-level gas and stack precomputation.
- The intx and ethash libraries provide documented arithmetic and Keccak-related dependencies.
- Full expmod precompile support requires GMP at build and execution time.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Build the evmone EVMC module
Configure and compile the evmone shared library and its documented test and benchmark tools.
Before you start
- A source checkout with recursive submodules
- CMake
- A C++20-capable build environment
- GMP if full expmod precompile support is required
Steps
Clone the repository recursively and change into its directory.
Configure the build with CMake; Linux and macOS use the documented CMake configuration, while Windows uses the Visual Studio 2019 x64 generator.
Build the project with parallel compilation.
Run the documented unit-test executable or benchmark tool.
Expected outcome
A compiled evmone EVMC module, with documented test and benchmark executables available from the build.
Guide limitations
- Full expmod precompile implementation requires GMP at build and execution time; default stubs cover known inputs.
- The evidence documents compilation and local test or benchmark commands, not a complete Ethereum client deployment.
Use evmone as a geth EVM plugin
Connect the evmone shared library to a geth build that supports EVMC.
Before you start
- A modified geth version with EVMC support
- The evmone shared library
- A geth installation that accepts the documented --vm.evm option
Steps
Obtain a geth build with EVMC support, such as the fork referenced in the repository.
Download or build the evmone shared library.
Start geth with --vm.evm pointing to the evmone shared library.
Expected outcome
The EVMC-enabled geth process is configured to use evmone in place of geth's internal EVM.
Guide limitations
- The repository states that a modified geth version is required.
- The guide documents client configuration, not execution verification or compatibility guarantees.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 2 October 2026
- Original website title
- ipsilon/evmone · Official homepage title · retained in its source language

