GitPedia

Py evm

A Python implementation of the Ethereum Virtual Machine

From ethereum·Updated June 17, 2026·View on GitHub·
·Archived

> [!caution] > This repository has been archived, and is now read-only. For a Python implementation of the EVM, check out the [execution-specs](https://github.com/ethereum/execution-specs) repo. The project is written primarily in Python, distributed under the MIT License license, first published in 2016. It has gained significant community traction with 2,356 stars and 691 forks on GitHub. Key topics include: ethereum, ethereum-virtual-machine, evm, python.

Latest release: v0.4.0-alpha.1Berlin Support
March 22, 2021View Changelog →

[!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

sh
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

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from ethereum/py-evm via the GitHub API.Last fetched: 6/22/2026