Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Snapshots

Bootstrap a node from a recent snapshot of a fully synced datadir instead of syncing Arbitrum Sepolia from genesis. The snapshot bundles both the Arbitrum Reth execution state and the Nitro consensus state.

Latest snapshot

NetworkBlockDateSize
Arbitrum Sepolia (421614)272,465,7452026-05-31998 GiB

latest.json always points to the newest snapshot. Check the current block, URL, and checksum:

curl -s https://snapshots-r2.arbreth.rs/arbreth-sepolia/latest.json

Plan for about 1 TB to download and about 3 TB extracted (1.4 TB MDBX state, 1.5 TB reth static files, plus the Nitro data).

Download

Download with aria2c (parallel, resumable):

aria2c -x16 -s16 https://snapshots-r2.arbreth.rs/arbreth-sepolia/272465745/snapshot.tar.zst

Optionally verify the checksum before extracting:

echo "c98312671a876cea14f6aa6c291ffb998dfd3cc9f4f63c4e42c723e7615353fd  snapshot.tar.zst" | sha256sum -c

Extract

Extract into /data. The archive restores arbreth-data (execution state) and nitro-data (consensus state):

zstd -dc snapshot.tar.zst | tar -xf - -C /data

Run

Point Compose at the two directories in .env:

DATA_DIR=/data/arbreth-data
NITRO_DATA_DIR=/data/nitro-data

Then start the stack:

docker compose up -d

Both services start already synced to the snapshot block. The reth datadir is arbreth-data/db, and the shared jwt.hex inside arbreth-data authenticates the execution client and Nitro.

Older snapshots

Archived snapshots at roughly 40M-block spacing. Each lives under the same arbreth-sepolia/<block>/ path with its own manifest.json.

BlockDateSize
13,984,0992026-03-2953 GiB
53,455,7122026-04-06202 GiB
89,962,8142026-04-24417 GiB
124,808,1152026-05-07596 GiB
165,696,7252026-05-13784 GiB
202,542,2112026-05-18942 GiB
242,809,0102026-05-231086 GiB

Download any block by substituting its number, then extract and run the same way as above:

B=89962814
aria2c -x16 -s16 https://snapshots-r2.arbreth.rs/arbreth-sepolia/$B/snapshot.tar.zst

index.json lists every snapshot with its block, size, URL, and checksum:

curl -s https://snapshots-r2.arbreth.rs/arbreth-sepolia/index.json

Older snapshots carry an MD5 in each manifest.json. Verify it before extracting:

B=89962814
MD5=$(curl -s https://snapshots-r2.arbreth.rs/arbreth-sepolia/$B/manifest.json | grep -o '"md5": "[^"]*"' | cut -d'"' -f4)
echo "$MD5  snapshot.tar.zst" | md5sum -c

Sync from genesis instead

Skip the snapshot and let the node sync from genesis. See Installation.