<!-- tempo-docs-context -->
> Source: [/docs/cli/download](https://tempo.xyz/developers/docs/cli/download.md)
> Section: [Get Started](https://tempo.xyz/developers/get-started.md). Choose a starting point, send a test payment, get testnet funds, connect a coding agent, find the SDKs and CLI, and use the resource guides to plan payment workflows, liquidity, provider selection, and partner integrations.
> [Documentation index](https://tempo.xyz/developers/llms.txt) · [Docs skill](https://tempo.xyz/developers/SKILL.md)

> Tempo MCP: Use `search`, `find_pages`, `read_page`, and `code` at `https://mcp.tempo.xyz` for Tempo and related documentation.
> If an indexed page is missing or reflects an older site, read this site’s [documentation index](https://tempo.xyz/developers/llms.txt) and Markdown pages directly.

# `tempo download`

Download chain snapshots for faster initial sync. `tempo download` fetches execution state, static files, and consensus data, and generates a `reth.toml` prune config for the target data directory. Current releases resolve the default data directory and snapshot manifest from the selected chain.

Running `tempo download` without a snapshot profile opens an interactive component selector. 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`.

<span id="tempo-download-usage" />

## Usage

```bash [Terminal]
tempo download [FLAGS]
```

<span id="tempo-download-examples" />

## Examples

Preview a validator snapshot download before making changes:

```bash [Terminal]
tempo download --chain mainnet --minimal --print-plan-json
```

The JSON plan includes archive URLs, sizes, and checksums when the manifest supplies them. It includes the consensus archive from `v1.12.0` onward. Planning still fetches snapshot metadata.

Open the interactive selector for mainnet:

```bash [Terminal]
tempo download --chain mainnet
```

Download an archive snapshot for an RPC node:

```bash [Terminal]
tempo download --chain mainnet --archive
```

List available snapshots, optionally for one chain:

```bash [Terminal]
tempo download --list
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 [Terminal]
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`](https://tempo.xyz/developers/docs/cli/node).

<span id="validator-migration-guidance" />

## Validator migration

Validators should use the minimal snapshot profile, even if the previous validator data directory used a different 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?

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.

To migrate or replace a validator snapshot, run the command for your network:

```bash [Terminal]
# Mainnet
tempo download --chain mainnet --minimal --force

# Moderato testnet
tempo download --chain moderato --minimal --force
```

`--force` removes the execution databases, static files, `reth.toml`, and the entire consensus directory before installing the new snapshot. It preserves `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.
:::

<span id="tempo-download-flags" />

## Flags

| Flag | Description |
| --- | --- |
| `--chain <NETWORK>` | Target network: `mainnet` or `moderato`. |
| `--datadir <PATH>` | Data directory for downloaded state. |
| `--consensus.datadir <PATH>` | Destination for consensus snapshot data. Defaults to `<DATADIR>/consensus`. Match the node's `--consensus.datadir` when using a separate volume. |
| `-u, --url <URL>` | Download a single legacy snapshot archive URL. |
| `--manifest-url <URL>` | Download a specific modular snapshot manifest URL. |
| `--list` | List available snapshots. |
| `--print-plan-json` | Print the selected execution and consensus archive plan without downloading archives or modifying the data directory. Select a profile such as `--minimal`. |
| `--resumable[=<BOOL>]` | Download to disk before extraction so interrupted downloads can resume. Defaults to `true`. |
| `--minimal` | Download the minimal component set without opening the selector. Validators should use this profile. |
| `--full` | Download the full node component set. |
| `--archive, --all` | Download all available components without opening the selector. Recommended for RPC providers and indexers. |
| `-y, --non-interactive` | Skip the selector and download the minimal component set unless component flags are set. |
| `--force` | Replace existing snapshot state, including the entire consensus directory. Preserves `discovery-secret` and `known-peers.json`. |

## Related

[tempo node](https://tempo.xyz/developers/docs/cli/node): Start a node from the downloaded snapshot

[Run a Tempo node](https://tempo.xyz/developers/docs/guide/node): System requirements, systemd, monitoring

[Snapshots viewer](https://snapshots.tempo.xyz/): Compare profiles and copy download commands
