ethereum/py-evm

A Python implementation of the Ethereum Virtual Machine

2,350

stars

3,851

commits

Python

primary language

Sep 8, 2025

updated

py-evm.readthedocs.io/en/latest/
ethereum
ethereum-virtual-machine
evm
python

README

[!caution] This repository has been archived, and is now read-only. For a Python implementation of the EVM, check out the execution-specs repo.

Python Implementation of the Ethereum protocol

PyPI version Python versions Docs build

Py-EVM

Py-EVM is an implementation of the Ethereum Virtual Machine (EVM) in Python.

Goals

Py-EVM aims to be a readable yet generally performant version of the EVM in Python.

In particular Py-EVM aims to:

  • be easy to understand and modifiable
  • be highly flexible to support research and experimentation
  • be performant enough to be used in testing for Python projects
  • be a reference implementation of the Ethereum execution layer specifications

Ethereum consensus today is achieved via Proof of Stake, involving a consensus layer that is beyond the scope of this repository.

Installation

python -m pip install py-evm

Documentation

Get started in 5 minutes

Check out the documentation on our official website

View the change log.

Contributors

(top 30 of 89)

carver

902 commits

pipermerriam

697 commits

gsalgado

430 commits

cburgdorf

307 commits

ethereum/py-evm

A Python implementation of the Ethereum Virtual Machine

2,350

stars

3,851

commits

Python

primary language

Sep 8, 2025

updated

py-evm.readthedocs.io/en/latest/
ethereum
ethereum-virtual-machine
evm
python

README

[!caution] This repository has been archived, and is now read-only. For a Python implementation of the EVM, check out the execution-specs repo.

Python Implementation of the Ethereum protocol

PyPI version Python versions Docs build

Py-EVM

Py-EVM is an implementation of the Ethereum Virtual Machine (EVM) in Python.

Goals

Py-EVM aims to be a readable yet generally performant version of the EVM in Python.

In particular Py-EVM aims to:

  • be easy to understand and modifiable
  • be highly flexible to support research and experimentation
  • be performant enough to be used in testing for Python projects
  • be a reference implementation of the Ethereum execution layer specifications

Ethereum consensus today is achieved via Proof of Stake, involving a consensus layer that is beyond the scope of this repository.

Installation

python -m pip install py-evm

Documentation

Get started in 5 minutes

Check out the documentation on our official website

View the change log.

Contributors

(top 30 of 89)

carver

902 commits

pipermerriam

697 commits

gsalgado

430 commits

cburgdorf

307 commits

Languages

Python

99.2%