Skip to content

Ethereum Execution Layer Specifications

Welcome to the documentation for the Ethereum Execution Layer Specifications (EELS), the executable Python specification of Ethereum’s Execution Layer.

EELS is implemented as a readable executable reference in Python that serves as a source of truth for developers across the Ethereum ecosystem and underpins the generation of test vectors used to ensure Execution Layer client implementations are spec-compliant.

EELS is a collaborative effort between Ethereum Improvement Proposals (EIP) authors, protocol researchers, prototype implementers and client developers, maintained in ethereum/execution-specs by the STEEL Team.

Where to Start

  • Getting Started


    Install the repository and run your first command.

    First time user.

    Installation

  • Writing Specs


    Implement an EIP as an executable Python specification.

    For EIP authors and researchers.

    Get started

  • Writing Tests


    Write test cases that verify EIP implementations across clients.

    For EIP authors and test devs.

    Get started

  • Running Tests


    Generate JSON fixtures or run tests against an execution layer client.

    For client developers.

    Overview

  • Read the Specs


    Browse the rendered Python specifications for the current fork and EIP.

    Reference ↗

  • Test Case Reference


    Browse all test cases organized by fork and EIP.

    Browse tests

Responsible Disclosure of Vulnerabilities

Reporting a Vulnerability

Care is required when adding PRs or issues for functionality that is live on Ethereum mainnet. Please report vulnerabilities and verify bounty eligibility via the bug bounty program.

  • Please do not create a PR with a vulnerability visible.
  • Please do not file a public ticket mentioning the vulnerability.