About
Specs is a team in Ethereum Foundation Protocol. We maintain the specifications of Ethereum's execution and consensus layers and the tests that check clients against them:
- Specs [EL] maintains the execution layer specifications and their test suite in ethereum/execution-specs, and the tools that run those tests against execution clients.
- Specs [CL] maintains the consensus layer specifications and their reference tests in ethereum/consensus-specs, and the c-kzg-4844 library.
The specifications of both layers are written as executable Python, and we generate the reference tests from them. Our priority is to make sure the next network upgrade is clearly specified and has thorough test coverage before it reaches mainnet. Alongside that, we help researchers turn proposals into specifications and tests for future upgrades, and we write the stress tests that help clients scale the L1 safely.
An upgrade changes both layers, and more and more EIPs touch both. Inclusion lists, enshrined proposer-builder separation, shorter slots and execution proofs all need the two specifications, the Engine API between them and both test suites to change together. The team page lists who we are.
Who we work with¶
- Researchers and EIP authors: to make proposals clear, complete and correct before they are included in an upgrade.
- Client teams on both layers: to check implementations, help debug failures and get clients ready for each upgrade.
- Other EF Protocol teams: ethPandaOps on devnets and Hive, Geth, zkEVM on execution proofs and zkEVM tests, Cryptography and Post-Quantum on the move to quantum-safe signature schemes, Security, and the state and finality teams on the parts of the specs they work on.
We coordinate in the ethspecs GitHub organisation, which holds our project management, presentations and shared tooling.
Contact us
Reporting mainnet bugs
To find out how to disclose a vulnerability in Ethereum, visit bounty.ethereum.org or email bounty@ethereum.org.
From STEEL to Specs¶
Until July 2026 these were two teams. STEEL (Specifications and Testing for the Ethereum Execution Layer) maintained the execution layer specs and tests, and the consensus specs team maintained the consensus layer specs. To foster closer collaboration between the specification teams in the Ethereum Foundation, the two teams merged and are now known as Specs, with the sub-teams Specs [EL] and Specs [CL]. This site was STEEL's site, and older blog posts still use that name.