This repository contains the specifications related to the Ethereum execution client, specifically the pyspec and specifications for network upgrades. The JSON-RPC API specification can be found in a separate repository.
Note: Starting with Paris, updates are no longer rolled out based on block numbers. Paris was enabled once proof-of-work Total Difficulty reached 58750000000000000000000. As of Shanghai (at 1681338455), upgrade activation is based on timestamps.
Some clarifications were enabled without protocol releases:
| EIP | Block No. |
|---|---|
| EIP-2681 | 0 |
| EIP-3607 | 0 |
| EIP-7523 | 15537394 |
| EIP-7610 | 0 |
The execution specification is a python implementation of Ethereum that prioritizes readability and simplicity. It will be accompanied by both narrative and API level documentation of the various components written in markdown and rendered using docc...
The Ethereum specification is maintained as a Python library, for better integration with tooling and testing.
Requires Python 3.11+
Building the spec documentation is most easily done through tox:
uvx --with=tox-uv tox -e spec-docsThe path to the generated HTML will be printed to the console.
To view the updated local documentation, run:
uv run mkdocs servethen connect to localhost:8000 in a browser
The Ethereum Execution Layer Specification code is licensed under the Creative Commons Zero v1.0 Universal.