> Feedback: If these docs are stale, missing, or confusing, post sanitized feedback to `https://docs.tempo.xyz/api/feedback` with `source: "mcp"`, a short `message`, and any relevant `toolName`, `relatedResource`, or `client`.
# `tempo download`

Download chain snapshots for faster initial sync. Fetches MDBX state and static files, and generates a `reth.toml` prune config for the target data directory.

Running `tempo download` without a snapshot profile opens an interactive component selector. Passing a profile flag such as `--minimal` or `--archive` skips the selector. Validators should use `--minimal`. RPC providers, indexers, and other workloads that need complete historical data should use `--archive`.

## Usage

```bash
tempo download [flags]
```

## Flags

| Flag | Description |
| --- | --- |
| `--chain <network>` | Target network (`mainnet`, `moderato`) |
| `--datadir <path>` | Data directory for downloaded state |
| `-u, --url <url>` | Download a single legacy snapshot archive URL |
| `--manifest-url <url>` | Download a specific modular snapshot manifest URL |
| `--list` | List available snapshots |
| `--resumable[=<bool>]` | Download to disk before extraction so interrupted downloads can resume. Enabled by default. |
| `--minimal` | Download the minimal component set without opening the interactive selector. Validators should use this profile. |
| `--full` | Download the full node component set. |
| `--archive`, `--all` | Download all available components without opening the interactive selector. Recommended for RPC providers and indexers. |
| `-y, --non-interactive` | Skip the interactive selector and download the minimal component set unless explicit component flags are provided. |
| `--force` | Overwrite existing snapshot data while preserving `discovery-secret` and `known-peers.json`. |

## Validator Migration Guidance

Validators should use the minimal snapshot profile, even if the previous validator data directory used a different snapshot profile.

Migrating from archive v1 to minimal v2 reduces validator node size approximately as follows:

| Network | Before | After | Reduction |
| --- | ---: | ---: | ---: |
| Mainnet | 27 GB | 10 GB | 2.7x |
| Moderato testnet | 1 TB | 100 GB | 10x |

### What is Minimal Mode?

Minimal Mode is a Reth storage profile for nodes that need to follow the chain and serve recent state, such as validators. It keeps disk usage low by pruning older historical data. If the node serves historical RPC, indexing, archive, or tracing workloads, use `--archive` instead.

See Reth's [Minimal Storage Mode](https://reth.rs/run/storage/minimal/) docs for the storage trade-offs.

### Am I Running a Minimal Node?

To check whether an existing validator has already migrated, inspect the node startup logs for the `Loaded storage settings` line and its `pruning_mode` field. If `pruning_mode` is `minimal`, no migration is needed unless you are replacing the node. If you are unsure which configuration your validator is running, reach out to the Tempo team before replacing snapshot data.

To migrate or replace a mainnet validator snapshot, run:

```bash
tempo download --chain mainnet --minimal --force
```

To migrate or replace a testnet validator snapshot, run:

```bash
tempo download --chain moderato --minimal --force
```

`--force` clears old snapshot files in the target data directory while preserving `discovery-secret` and `known-peers.json`.

:::note\[Unsure which profile to use?]
If you are unsure which pruning configuration your validator is running, reach out to the Tempo team before replacing snapshot data.
:::

## Examples

Open the interactive selector for mainnet:

```bash
tempo download --chain mainnet
```

Download an archive snapshot for an RPC node:

```bash
tempo download --chain mainnet --archive
```

List available snapshots:

```bash
tempo download --list
```

List available snapshots for a specific chain:

```bash
tempo download --list --chain moderato
```

If the data directory has limited free disk space, disable resumable downloads and stream the snapshot directly into extraction:

```bash
tempo download --chain mainnet --minimal --resumable=false
```

Use the [snapshots viewer](https://snapshots.tempo.xyz/) to compare snapshot profiles and copy generated commands.

Then start your node with [`tempo node`](/docs/cli/node).
