Skip to content
EVMC – Ethereum Client-VM Connector API
C C++ CMake Rust Go Shell
Branch: master
Clone or download
chfast Merge pull request #435 from ethereum/instruction_metrics
Change values in instruction metrics
Latest commit 4ee8ff8 Sep 30, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
bindings Rename evmc_instance -> evmc_vm Sep 25, 2019
cmake cmake: Disable support for std::tr1::tuple in GTest Sep 13, 2019
docs Rename evmc_instance -> evmc_vm Sep 25, 2019
examples instructions: Rename .num_stack_arguments -> .stack_height_required Sep 28, 2019
lib instructions: Change .stack_height_change values Sep 28, 2019
test instructions: Change .stack_height_change values Sep 28, 2019
.bumpversion.cfg EVMC 7.0.0-alpha.0 Aug 20, 2019
.clang-format ci: Upgrade clang-format to version 9 Sep 25, 2019
.codespell-whitelist rust: Add helpers for execution result handling Mar 19, 2019
.gitignore Add workspace Cargo file Mar 13, 2019
.travis.yml CI: Run ctest tests in parallel, in random order Apr 2, 2019 Introduce AUTHORS file Aug 21, 2018 Rename evmc_instance -> evmc_vm Sep 25, 2019
CMakeLists.txt EVMC 7.0.0-alpha.0 Aug 20, 2019
CNAME Add CNAME for alias Sep 7, 2019
Cargo.toml rust: Procedural macro for automatic VM declaration Jun 4, 2019
Doxyfile examples: Move example_vm into the examples/example_vm subdirectory Jul 23, 2019
LICENSE Change license to Apache 2.0 Aug 22, 2018 Officially drop C90 standard support Sep 13, 2019
appveyor.yml ci: Add VS 2019 build on AppVeyor Sep 26, 2019
circle.yml ci: Add compiler to job names Sep 26, 2019


chat: on gitter readme style: standard

Ethereum Client-VM Connector API

The EVMC is the low-level ABI between Ethereum Virtual Machines (EVMs) and Ethereum Clients. On the EVM side it supports classic EVM1 and ewasm. On the Client-side it defines the interface for EVM implementations to access Ethereum environment and state.



Please visit the documentation.

Languages support

Language Supported Versions Supported Compilers
C C99, C11 GCC 6+, clang 3.8+, MSVC 2015+
C++ C++11, C++14, C++17 GCC 6+, clang 3.8+, MSVC 2015+
Go (bindings) 1.9 - 1.12
Rust (bindings)¹ 2018 edition 1.31.0 and newer

1. Rust support is limited and not complete yet, but it is mostly functional already. Breaking changes are possible at this stage.

Related projects




See also the list of EVMC Authors.


chat: on gitter

Talk with us on the EVMC Gitter chat.


Licensed under the MIT License.


Making new release

  1. Update, put the release date, update release link.
  2. git add
  3. Tag new release: bumpversion --allow-dirty prerel.
  4. Prepare CHANGELOG for next release: add unreleased section and link.
  5. git add
  6. Start new release series: bumpversion --allow-dirty --no-tag minor.
You can’t perform that action at this time.