ipsilon/evmc

EVMC – Ethereum Client-VM Connector API

C

379

1,779 commits

updated Apr 7, 2026

See the code

README

EVMC

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.

Usage

Documentation

Please visit the documentation.

Languages support

LanguageSupported VersionsSupported CompilersFeature Support
CC99, C11GCC 8+, clang 9+, MSVC 2017+Host- and VM-side
C++C++17GCC 8+, clang 9+, MSVC 2017+Host- and VM-side
Go (bindings)1.11+ (with modules)Host-side only
Rust (bindings)¹2018 edition1.47.0 and newerVM-side only
Java (bindings)²11Host-side only
  1. Rust support is limited and not complete yet, but it is mostly functional already. Breaking changes are possible at this stage.
  2. Java support is in progress and the interface remains in flux. Breaking changes are possible at this stage.

Testing tools

  • evmc run (tools/evmc) — executes bytecode in any EVMC-compatible VM implementation.
  • evmc-vmtester (tools/vmtester) — can test any EVM implementation for compatibility with EVMC.

EVMs

Clients

Maintainers

See also the list of EVMC Authors.

Contributing

chat: on gitter

Talk with us on the EVMC Gitter chat.

License

license badge

Licensed under the Apache License, Version 2.0.

Internal

Making new release

  1. Update CHANGELOG.md, put the release date, update release link.
  2. git add CHANGELOG.md.
  3. Tag new release: bumpversion --allow-dirty prerel.
  4. Prepare CHANGELOG for next release: add unreleased section and link.
  5. git add CHANGELOG.md.
  6. Start new release series: bumpversion --allow-dirty --no-tag minor.
c
cpp
ethereum
evm
evmc
ewasm
golang
hacktoberfest
java
rust
wasm

Contributors

chfast

1,283 commits

axic

424 commits

gumb0

20 commits

yperbasis

18 commits

ipsilon/evmc

EVMC – Ethereum Client-VM Connector API

C

379

1,779 commits

updated Apr 7, 2026

See the code

README

EVMC

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.

Usage

Documentation

Please visit the documentation.

Languages support

LanguageSupported VersionsSupported CompilersFeature Support
CC99, C11GCC 8+, clang 9+, MSVC 2017+Host- and VM-side
C++C++17GCC 8+, clang 9+, MSVC 2017+Host- and VM-side
Go (bindings)1.11+ (with modules)Host-side only
Rust (bindings)¹2018 edition1.47.0 and newerVM-side only
Java (bindings)²11Host-side only
  1. Rust support is limited and not complete yet, but it is mostly functional already. Breaking changes are possible at this stage.
  2. Java support is in progress and the interface remains in flux. Breaking changes are possible at this stage.

Testing tools

  • evmc run (tools/evmc) — executes bytecode in any EVMC-compatible VM implementation.
  • evmc-vmtester (tools/vmtester) — can test any EVM implementation for compatibility with EVMC.

EVMs

Clients

Maintainers

See also the list of EVMC Authors.

Contributing

chat: on gitter

Talk with us on the EVMC Gitter chat.

License

license badge

Licensed under the Apache License, Version 2.0.

Internal

Making new release

  1. Update CHANGELOG.md, put the release date, update release link.
  2. git add CHANGELOG.md.
  3. Tag new release: bumpversion --allow-dirty prerel.
  4. Prepare CHANGELOG for next release: add unreleased section and link.
  5. git add CHANGELOG.md.
  6. Start new release series: bumpversion --allow-dirty --no-tag minor.
c
cpp
ethereum
evm
evmc
ewasm
golang
hacktoberfest
java
rust
wasm

Contributors

chfast

1,283 commits

axic

424 commits

gumb0

20 commits

yperbasis

18 commits

Languages

C

48.2%

C++

29.5%

Rust

10.2%

CMake

8.6%

Go

3.5%