Snapshots
Restoring from a snapshot drastically reduces initial Base node sync time. Snapshots are refreshed regularly.
Restoring from a snapshot
Section titled “Restoring from a snapshot”These steps assume you are inside the cloned node directory (the one containing docker-compose.yml).
-
Install aria2c. Snapshot downloads rely on
aria2c— a resumable downloader that gracefully recovers from the periodic connection drops Cloudflare imposes on long transfers. If it isn’t already on your machine:Terminal window # macOSbrew install aria2# Ubuntu / Debiansudo apt-get install aria2 -
Prepare the data directory.
-
Before launching Docker for the first time, create the host directory that will be mapped into the container. The path must match the
volumesentry indocker-compose.yml:Terminal window mkdir ./reth-data -
If a previous run left an existing data directory, stop the node first (
docker compose down), wipe the contents (for example,rm -rf ./reth-data/*), then continue.
-
-
Download the snapshot. Pick the row that matches your network and client, and run the command from inside the
nodedirectory.Network Snapshot type Download command Testnet Archive (recommended) aria2c -c -x 16 -s 16 "https://sepolia-reth-archive-snapshots.base.org/$(curl -s https://sepolia-reth-archive-snapshots.base.org/latest)"Testnet Pruned aria2c -c -x 16 -s 16 "https://sepolia-reth-pruned-snapshots.base.org/$(curl -s https://sepolia-reth-pruned-snapshots.base.org/latest)"Mainnet Archive (recommended) aria2c -c -x 16 -s 16 "https://mainnet-reth-archive-snapshots.base.org/$(curl -s https://mainnet-reth-archive-snapshots.base.org/latest)"Mainnet Pruned aria2c -c -x 16 -s 16 "https://mainnet-reth-pruned-snapshots.base.org/$(curl -s https://mainnet-reth-pruned-snapshots.base.org/latest)" -
Extract the snapshot. Replace
snapshot-filenamewith the actual download:Terminal window tar -xzvf <snapshot-filename.tar.gz># For .tar.zsttar -I zstd -xvf <snapshot-filename.tar.zst> -
Move the data into place. Extraction typically produces a
reth/directory.-
Move its contents into the data directory created in step 2:
Terminal window mv ./reth/* ./reth-data/rm -rf ./reth # remove the now-empty extracted folder -
The chain data subdirectories (
chaindata,nodes,segments, etc.) must sit directly under./reth-data— not in a nested folder.
-
-
Start the node. Return to the root of your Base node folder and bring it up:
Terminal window cd ..docker compose up --buildThe node should pick up syncing from the last block recorded in the snapshot.
-
Verify and clean up. Tail the logs (
docker compose logs -f <service_name>) or use the sync monitoring command to confirm the node starts at the snapshot’s block height. Once verified, delete the downloaded archive (.tar.gz) to reclaim disk space.
Proofs snapshots
Section titled “Proofs snapshots”If you run the historical proofs ExEx, proof database snapshots are available so you can skip the 24-48 hour backfill.
| Network | Download command |
|---|---|
| Testnet | aria2c -c -x 16 -s 16 "https://sepolia-reth-proofs-snapshots.base.org/$(curl -s https://sepolia-reth-proofs-snapshots.base.org/latest)" |
| Mainnet | aria2c -c -x 16 -s 16 "https://mainnet-reth-proofs-snapshots.base.org/$(curl -s https://mainnet-reth-proofs-snapshots.base.org/latest)" |
The restore process matches the steps above — follow Restoring from a snapshot using this archive.
Why does Base ship a Pruned snapshot instead of a Full node snapshot?
In Reth, “full” is not a separate node type — it is just a pruned node configured with a specific preset. Reth’s --full preset keeps the most recent 10,064 blocks, which is roughly 1.4 days on Ethereum but only about 5-6 hours on Base because of the faster block cadence.
Base’s pruned snapshot instead uses a 31-day rolling retention window. If you want a smaller on-disk footprint, you can override reth.toml to match the 10,064-block preset.