Installation
April 22, 2026 · View on GitHub
Quick Start
=== "All platforms"
```console
git clone https://github.com/ethereum/execution-specs
cd execution-specs
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.12
uv python pin 3.12
uv sync
uv tool install --exclude-newer "10 days" rust-just
just shell-completions
```
=== "macOS"
```console
git clone https://github.com/ethereum/execution-specs
cd execution-specs
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.12
uv python pin 3.12
uv sync
brew install just
just shell-completions
```
Further explanation, troubleshooting, and alternative installation paths are below.
Prerequisites
The tools provided by execution-specs use uv (docs.astral.sh/uv) to manage dependencies and the virtual environment.
It's recommended to use the latest version of uv, which can be installed via curl (recommended; can self-update via uv self update) or pip (requires Python, can't self-update):
=== "curl"
```console
curl -LsSf https://astral.sh/uv/install.sh | sh
```
=== "pip"
```console
pip install uv
```
When installed via curl, uv can also download Python for your platform if a required version (Python 3.11–3.14) is not already installed.
Installing Python and Python Dependencies
Clone @ethereum/execution-specs and install the project dependencies. Python 3.11–3.14 are supported; Python 3.12 tends to be the smoothest for local setup because pre-built wheels are available across the dependency set.
The following commands use uv to install Python 3.12 and pin it for all commands run within the execution-specs directory:
=== "All platforms"
```console
git clone https://github.com/ethereum/execution-specs
cd execution-specs
uv python install 3.12
uv python pin 3.12
uv sync
```
Testing Your Python Environment
The following command can be used to verify that the environment is set up correctly. By targeting a single test subdirectory, it generates only a small subset of test vectors:
uv run fill tests/istanbul/eip1344_chainid/
Installing the just Task Runner
The @ethereum/execution-specs repository uses just to run common tasks locally and in CI. Tasks range from static code checks to generating test vectors from the spec.
@ethereum/execution-specs requires just 1.43+. Note that the version currently distributed in Ubuntu 24.04 is too old; many other methods are available in the installation docs.
just can be installed directly with uv from the rust-just package.
=== "All platforms"
```console
uv tool install --exclude-newer "10 days" rust-just
```
Using `--exclude-newer` adds a cool-down window that can help reduce exposure to supply-chain attacks.
=== "macOS"
```console
brew install just
```
Testing Your just Installation
To explore which tasks (recipes) are available, simply run just within the execution-specs directory:
just
Then try running the available static code checks:
just static
Configuring Shell Completion
just supports tab completion for recipes. Run the following command for help on how to enable this feature for your shell:
just shell-completions
More background is available in the just documentation.
Installation Troubleshooting
If you run into problems, see Installation Troubleshooting.