py-evm
Python implementation of the Ethereum Virtual Machine
Decision gist · record as of 2026-08-14
No, not for new projects. While py-evm is well-designed and has low install friction, the repository is archived and abandoned—no maintenance, security patches, or bug fixes will be provided. Its 10 dependencies may themselves become stale. Install only if you are maintaining an existing codebase that already depends on it, or if you are conducting time-limited research where you accept the stability and security risks.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.8 or later; the package is in Alpha status (Development Status :: 3) and the repository is archived, so production use carries stability risk.
- Installation is straightforward with low friction—a pure Python wheel with 10 runtime dependencies.
- However, the repository is archived and marked as abandoned; the last commit was 2025-09-08 but no active maintenance is occurring.
License · maintenance · safety
MIT (permissive) — MIT license is permissive; you can use, modify, and distribute py-evm with minimal legal restriction, though you must retain the license notice.
last release 2025-05-14 (457 days) · last repo commit 2025-09-08 · 2,353 stars · archived
0 known vulnerabilities (OSV.dev, 2026-08-14) · 280,173 downloads/mo, #8,114 on PyPI
Alternatives
Verify before relying
pip install py-evm
from eth_utils import decode_hex
from py_evm.vm import VM
from py_evm.chains.mainnet import MainnetChain
# Create a chain instance and execute transactions
chain = MainnetChain()
# Use chain methods to process blocks and state- Current performance characteristics and whether it remains suitable for testing large transaction volumes.
- Compatibility with recent Ethereum protocol upgrades post-abandonment.
- Whether the 10 runtime dependencies (eth-bloom, eth-keys, eth-typing, eth-utils, lru-dict, py-ecc, rlp, trie, ckzg, cached-property) are themselves maintained.
What it is and what it does
Py-EVM is a Python-based reference implementation of the Ethereum Virtual Machine designed to be readable, flexible, and performant enough for testing and research. It executes Ethereum bytecode and processes transactions according to the protocol specification, with a focus on clarity and modifiability over raw speed.
The package is built on a stack of Ethereum-specific cryptographic and data-structure libraries (eth-bloom, eth-keys, eth-typing, eth-utils, py-ecc, rlp, trie, and ckzg) and provides chainable interfaces for constructing and simulating Ethereum execution. It is intended as a reference implementation and testing tool rather than a production execution client, and is suitable for developers building Python-based Ethereum applications, running protocol experiments, or validating smart contract behavior in isolation.
Use it for
- Testing smart contracts and transaction logic in Python without deploying to a live network.
- Building research prototypes and experimental Ethereum protocol implementations.
- Validating bytecode execution and state transitions as part of a Python test suite.
- Understanding Ethereum protocol mechanics through a readable, modifiable codebase.
- Simulating blockchain state and transaction processing for educational or analytical purposes.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
No, not for new projects.
While py-evm is well-designed and has low install friction, the repository is archived and abandoned—no maintenance, security patches, or bug fixes will be provided. Its 10 dependencies may themselves become stale. Install only if you are maintaining an existing codebase that already depends on it, or if you are conducting time-limited research where you accept the stability and security risks.
Install
py-evm on PyPI
Before you install
Installation is straightforward with low friction—a pure Python wheel with 10 runtime dependencies. However, the repository is archived and marked as abandoned; the last commit was 2025-09-08 but no active maintenance is occurring. Use only if you accept that security patches and bug fixes will not be forthcoming.
Requires Python 3.8 or later; the package is in Alpha status (Development Status :: 3) and the repository is archived, so production use carries stability risk.
License in practice
MIT license is permissive; you can use, modify, and distribute py-evm with minimal legal restriction, though you must retain the license notice.
Quickstart
pip install py-evm
from eth_utils import decode_hex
from py_evm.vm import VM
from py_evm.chains.mainnet import MainnetChain
# Create a chain instance and execute transactions
chain = MainnetChain()
# Use chain methods to process blocks and state
Verify before relying
- Current performance characteristics and whether it remains suitable for testing large transaction volumes.
- Compatibility with recent Ethereum protocol upgrades post-abandonment.
- Whether the 10 runtime dependencies (eth-bloom, eth-keys, eth-typing, eth-utils, lru-dict, py-ecc, rlp, trie, ckzg, cached-property) are themselves maintained.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release <4,>=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 10 packagescached-propertyeth-bloometh-keyseth-typingeth-utilslru-dictpy-eccrlptrieckzg |
| Maintenance | Abandoned 457 days since the last release |
| Last repo commit | repository archived |
| First released | |
| Downloads | 280,173 / month, #8,114 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 3 - AlphaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9 |
Evidence: py_evm-0.12.1b1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “ethereum virtual machine python”
- py-evmPy-EVM is a Python implementation of the Ethereum Virtual Machine…
- pyevmasmpyevmasm assembles and disassembles Ethereum Virtual Machine…
- vyperVyper is a Python-like programming language for writing smart…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also vyper · web3 · ethereum-dasm · evmdasm · pyevmasm · mythril · clvm-tools · eth-brownie · clvm · x402