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
| Network | Block | Date | Size |
|---|---|---|---|
| Arbitrum Sepolia (421614) | 272,465,745 | 2026-05-31 | 998 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.jsonPlan 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.zstOptionally verify the checksum before extracting:
echo "c98312671a876cea14f6aa6c291ffb998dfd3cc9f4f63c4e42c723e7615353fd snapshot.tar.zst" | sha256sum -cExtract
Extract into /data. The archive restores arbreth-data (execution state) and nitro-data (consensus state):
zstd -dc snapshot.tar.zst | tar -xf - -C /dataRun
Point Compose at the two directories in .env:
DATA_DIR=/data/arbreth-data
NITRO_DATA_DIR=/data/nitro-dataThen start the stack:
docker compose up -dBoth 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.
| Block | Date | Size |
|---|---|---|
| 13,984,099 | 2026-03-29 | 53 GiB |
| 53,455,712 | 2026-04-06 | 202 GiB |
| 89,962,814 | 2026-04-24 | 417 GiB |
| 124,808,115 | 2026-05-07 | 596 GiB |
| 165,696,725 | 2026-05-13 | 784 GiB |
| 202,542,211 | 2026-05-18 | 942 GiB |
| 242,809,010 | 2026-05-23 | 1086 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.zstindex.json lists every snapshot with its block, size, URL, and checksum:
curl -s https://snapshots-r2.arbreth.rs/arbreth-sepolia/index.jsonOlder 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 -cSync from genesis instead
Skip the snapshot and let the node sync from genesis. See Installation.
