Skip to main content

Ethereum client snapshots

Disclaimer: The snapshots provided are intended solely for testing and development purposes. They are not guaranteed to reflect the current state, data, or functionality of the canonical Ethereum Network. Use of these snapshots is at your own risk, and no representations or warranties, either express or implied, are made regarding their accuracy, completeness, or reliability in comparison to the Ethereum Network. These snapshots should not be used in production or as a substitute for interacting with the canonical Ethereum Network. Always manually verify the state against the Ethereum Network to ensure consistency and accuracy.

Here you'll find blockchain snapshots for various Ethereum networks and clients.

These snapshots are regularly updated (2-3days) and at the same block height. They can help you quickly sync your node.

Loading snapshot data...

Quickstart
#

Just use Docker to download and untar the snapshot
#

If you have docker installed, this is the easiest way to download and untar a snapshot, without having to install any other dependencies:

docker run --rm -it \
  -v $PATH_TO_YOUR_GETH_DATA_DIR:/data \
  --entrypoint "/bin/sh" \
  alpine -c \
  "apk add --no-cache curl tar zstd && \
   curl -s -L https://snapshots.ethpandaops.io/sepolia/geth/latest/snapshot.tar.zst | \
   tar -I zstd -xvf - -C /data"

Detailed example: Getting a Sepolia Geth data dir snapshot
#

Verify when the latest snapshot was taken:

# Check the latest block:
curl -s https://snapshots.ethpandaops.io/sepolia/geth/latest/_snapshot_eth_getBlockByNumber.json

# Or just get the block number:
printf '%d\n' $(
    curl -s https://snapshots.ethpandaops.io/sepolia/geth/latest/_snapshot_eth_getBlockByNumber.json |
    jq -r '.result.number'
)

# Or just the time when it was taken
printf '%d\n' $(
    curl -s https://snapshots.ethpandaops.io/sepolia/geth/latest/_snapshot_eth_getBlockByNumber.json |
    jq -r '.result.timestamp'
)

Then, also check which client version was used during the snapshot:

# Get client version. Can be important, depending on the version that you want to run.
curl -s https://snapshots.ethpandaops.io/sepolia/geth/latest/_snapshot_web3_clientVersion.json | jq -r '.result'

If you’re happy with the version and the timestamp of the most recent snapshot, you can download it like:

# Download the whole snapshot
curl -O https://snapshots.ethpandaops.io/sepolia/geth/latest/snapshot.tar.zst

# Or... download and untar at the same time. Safes you disk space, so you don't have to store the full compressed file.
curl -s -L https://snapshots.ethpandaops.io/sepolia/geth/latest/snapshot.tar.zst \
| tar -I zstd -xvf - -C $PATH_TO_YOUR_GETH_DATA_DIR

# Or.. use a docker container with all the tools you need (curl, zstd, tar) and untar it on the fly
docker run --rm -it \
  -v $PATH_TO_YOUR_GETH_DATA_DIR:/data \
  --entrypoint "/bin/sh" \
  alpine -c \
  "apk add --no-cache curl tar zstd && \
   curl -s -L https://snapshots.ethpandaops.io/sepolia/geth/latest/snapshot.tar.zst | \
   tar -I zstd -xvf - -C /data"