logoAcademy

Different Versions of EVM

Learn about the different versions of the Ethereum Virtual Machine in the Avalanche ecosystem.

Geth

Geth (or go-ethereum) is the official implementation of an Ethereum client, written in the Go programming language. It is one of the original and most widely used Ethereum clients today. Geth handles transactions, deploys and executes smart contracts, and contains the Ethereum Virtual Machine.

Coreth

Coreth is a fork of Geth maintained by Ava Labs. It implements the EVM for the C-Chain and has been adapted to work with Avalanche Consensus.

Subnet-EVM

Subnet-EVM is a fork of Coreth designed to facilitate launching customized EVM-based blockchains on an Avalanche L1. It differs from Coreth in the following ways:

  • Configurable Fees and Gas Limits: Customizable fees and gas limits can be set in the genesis file.
  • Unified Subnet-EVM Hardfork: All Avalanche hardforks are merged into a single "Subnet-EVM" hardfork.
  • Atomic Transactions and Shared Memory Removed: Support for atomic transactions and shared memory has been removed.
  • Multicoin Contracts and State Removed: Multicoin contracts and state tracking are no longer supported.

Precompile-EVM

Precompile-EVM allows precompiles to be registered with Subnet-EVM without needing to fork the Subnet-EVM codebase. This simplifies common customizations to Subnet-EVM, making them more accessible and easier to maintain. It also streamlines updates for Subnet-EVM.

On this page