Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Python Implementation of the Ethereum protocol

Join the conversation on Discord Build Status PyPI version Python versions Docs build

Py-EVM

Py-EVM is an implementation of the Ethereum protocol in Python. It contains the low level primitives for the original proof-of-work (POW), (formerly known as Ethereum 1.0) chain as well as emerging support for the proof-of-stake (POS) (formerly known as Ethereum 2.0) spec.

Goals

Py-EVM aims to eventually become the defacto Python implementation of the Ethereum protocol, enabling a wide array of use cases for both public and private chains.

In particular Py-EVM aims to:

  • be a reference implementation of the Ethereum POW and POS implementations in one of the most widely used and understood languages, Python.

  • be easy to understand and modifiable

  • have clear and simple APIs

  • come with solid, friendly documentation

  • deliver the low level primitives to build various clients on top (including full and light clients)

  • be highly flexible to support both research as well as alternate use cases like private chains.

Quickstart

python -m pip install py-evm

Get started in 5 minutes

Documentation

Check out the documentation on our official website

Developer Setup

If you would like to hack on py-evm, please check out the Snake Charmers Tactical Manual for information on how we do:

  • Testing
  • Pull Requests
  • Documentation

We use pre-commit to maintain consistent code style. Once installed, it will run automatically with every commit. You can also run it manually with make lint. If you need to make a commit that skips the pre-commit checks, you can do so with git commit --no-verify.

Development Environment Setup

git clone git@github.com:ethereum/py-evm.git
cd py-evm
virtualenv -p python3 venv
. venv/bin/activate
python -m pip install -e ".[dev]"
pre-commit install

Release setup

To release a new version:

make release bump=$$VERSION_PART_TO_BUMP$$

To issue the next version in line, specify which part to bump, like make release bump=minor or make release bump=devnum. This is typically done from the main branch, except when releasing a beta (in which case the beta is released from main, and the previous stable branch is released from said branch).

Want to help?

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues that are labeled Good First Issue.

Metadata

Release files for evm-py 0.10.1b1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for evm-py 0.10.1b1
File Size Uploaded Provenance Actions
evm_py-0.10.1b1.tar.gz 606.8 kB Without provenance Details for evm_py-0.10.1b1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for evm-py 0.10.1b1
File Interpreter ABI Platform Actions
evm_py-0.10.1b1-py3-none-any.whl Python 3 none any Details for evm_py-0.10.1b1-py3-none-any.whl

Total release size: 1.2 MB

Release files / evm_py-0.10.1b1.tar.gz

Download URL evm_py-0.10.1b1.tar.gz
Size 606.8 kB
Tags Source
SHA-256 checksum
How to use checksums
3fb9c4063252e3a31f62201a91122c335c8a6b47b37ec4a66a658db2a28d704c
BLAKE2b-256 checksum
How to use checksums
25544597ed57ca2e40ce8f74f49b298e46a24c661cc2a1db0031665611b2532b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.5

Release files / evm_py-0.10.1b1-py3-none-any.whl

Download URL evm_py-0.10.1b1-py3-none-any.whl
Size 551.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
841b7472ce9cf22f1d9933d3582093998132251b0f0c29bc0a28a6c0211d3a69
BLAKE2b-256 checksum
How to use checksums
4183acf40bf402949c1d531bfdb34485134d0575cf285b50b77a79fce4dade40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.5

Security for evm-py 0.10.1b1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page