Cosmos Hub Snapshots, provided by 0base VC

Cosmos Hub
PebbleDB snapshots

Automated, verified cosmoshub-4 snapshots. This is a non-validator full node and does not sign blocks.

Node height
checking…
Syncing
checking…
Peers
checking…
Verified snapshots
checking…

Endpoints

CometBFT RPC
Cosmos REST
Address book

Verified snapshots

Each archive contains the stopped node's data/ directory with PebbleDB. The archive is published only after checksum, restore, application-state, chain ID, height, peer, and post-restore block checks pass. HTTP Range requests are enabled for resumable downloads.

HeightCreated (browser local time)SizeFiles
loading…

Restore

Compatible software: the current Cosmos Hub upgrade-compatible Gaia build. The archive contains the node data/ directory with the PebbleDB application database. Disposable local state-sync files under data/snapshots/ are intentionally excluded to keep the download small.

# Download and verify the exact archive named by the public catalog.
export COSMOS_HOME="${COSMOS_HOME:-$HOME/.gaia}"
mkdir -p "$COSMOS_HOME"
SNAPSHOT_META="$(curl -fsS https://cosmos.0base.vc/api/snapshots.json | jq -e '.[0]')"
SNAPSHOT_FILE="$(printf '%s' "$SNAPSHOT_META" | jq -er '.filename')"
SNAPSHOT_URL="https://cosmos.0base.vc/snapshots/$SNAPSHOT_FILE"
curl -fL -C - -o "$SNAPSHOT_FILE" "$SNAPSHOT_URL"
curl -fL -o "$SNAPSHOT_FILE.sha256" "$SNAPSHOT_URL.sha256"
sha256sum -c "$SNAPSHOT_FILE.sha256"
zstd -t "$SNAPSHOT_FILE"

# Stop gaiad and keep a recoverable copy of the old data directory.
systemctl stop gaiad 2>/dev/null || true
if [ -d "$COSMOS_HOME/data" ]; then
  mv "$COSMOS_HOME/data" "$COSMOS_HOME/data.before-snapshot-$(date -u +%Y%m%dT%H%M%SZ)"
fi
zstd -dc "$SNAPSHOT_FILE" | tar -xf - -C "$COSMOS_HOME"

# Before starting, retain the official cosmoshub-4 genesis and ensure app.toml contains:
# app-db-backend = "pebbledb"
# pruning = "custom"
# pruning-keep-recent = "100"
# pruning-interval = "10"
gaiad start --home "$COSMOS_HOME"

# Verify the restored chain and application state after the node starts.
curl -fsS http://127.0.0.1:26657/status | jq '.result.node_info.network, .result.sync_info.catching_up'
curl -fsS http://127.0.0.1:1317/cosmos/base/tendermint/v1beta1/node_info | jq '.default_node_info.network'
curl -fsS http://127.0.0.1:1317/cosmos/staking/v1beta1/params | jq '.params.bond_denom, .params.max_validators'

# The restored node is ready only when it is on cosmoshub-4,
# has peers, and is no longer catching up.
curl -fsS http://127.0.0.1:26657/status | jq '{chain_id:.result.node_info.network,height:.result.sync_info.latest_block_height,catching_up:.result.sync_info.catching_up}'
curl -fsS http://127.0.0.1:26657/net_info | jq '.result.n_peers'

Cosmos provider manifest · machine status