# Mesa Trail Network

> Build matrix and connection guide for Mesa Trail, the current Mesa upgrade test network — Debian packages, compatible SDK releases, and node setup.

Canonical URL: https://docs.minaprotocol.com/network-upgrades/mesa/mesa-trail

**Mesa Trail** is the current Mesa test network — the environment for validating the Mesa upgrade before deployment to devnet and mainnet. This page covers the build matrix and how to connect each node type.

:::caution Test network

Mesa Trail is intended for testing only. It may experience instability, breaking changes, and unexpected behavior. Data on this network is not persistent or reliable, and the network may be reset without notice.

:::

Two earlier Mesa test networks — **preflight** and **MUT** — are archived and no longer accept connections. If you are still running a preflight or MUT build, move to the Mesa Trail release below. Their historical values are recorded on [Archived Networks](/network-upgrades/mesa/archived-networks).

## Current Build Version

**Version (install this):** `4.0.0-rc2-3418329`

**Compatible o1js release:** `o1js@3.0.0-mesa.rc2` — the matching SDK for the Mesa transaction protocol. Install with `npm install o1js@3.0.0-mesa.rc2` (or the equivalent for your package manager) when developing or redeploying zkApps against Mesa Trail. Earlier `o1js` versions produce transactions that Mesa nodes reject.

:::note Debian packages only

Mesa Trail does not publish Docker images. Install the Debian packages below. Docker images are published for the devnet and mainnet Mesa releases.

:::

### Debian Packages

**Repository:** `packages.o1test.net`
**Channel:** `mesa-trail`
**Codenames:** `bullseye`, `bookworm`, `focal`, `jammy`, `noble`

Available packages (each at version `4.0.0-rc2-3418329`):

| Package | Purpose |
| --- | --- |
| `mina-devnet` | Mina daemon |
| `mina-archive-devnet` | Archive node |
| `mina-rosetta-devnet` | Rosetta API |
| `mina-devnet-config` | Network configuration shipped with the daemon |
| `mina-logproc` | Log processing helper (installed as a daemon dependency) |

:::note Unsigned repository

`packages.o1test.net` is not GPG-signed, so the apt source line below uses `[trusted=yes]`. This is expected for test-network builds.

:::

## Connecting to the Network

All node types must use the Mesa Trail seed peer list:

```bash
--peer-list-url https://storage.googleapis.com/o1labs-gitops-infrastructure/mina-mesa-rc/mina-mesa-rc-peer-list-url.txt
```

First, install dependencies and configure the repository:

```bash
# Step 1: Install dependencies
sudo apt-get install -y lsb-release ca-certificates wget gnupg

# Step 2: Add the repository with the mesa-trail channel.
# packages.o1test.net is unsigned, hence [trusted=yes].
echo "deb [trusted=yes] http://packages.o1test.net $(lsb_release -cs) mesa-trail" | \
  sudo tee /etc/apt/sources.list.d/mina-mesa-trail.list

# Step 3: Update and install
sudo apt-get update
sudo apt-get install -y mina-devnet=4.0.0-rc2-3418329
```

### Mina Daemon

```bash
mina daemon \
  --peer-list-url https://storage.googleapis.com/o1labs-gitops-infrastructure/mina-mesa-rc/mina-mesa-rc-peer-list-url.txt \
  --libp2p-keypair ~/.mina-config/keys/libp2p-key
```

### Archive Node

```bash
# Install archive package
sudo apt-get install -y mina-archive-devnet=4.0.0-rc2-3418329

# Create PostgreSQL database (if needed)
sudo -u postgres createdb archive
sudo -u postgres createuser archive_user
sudo -u postgres psql -c "ALTER USER archive_user WITH PASSWORD 'your-secure-password';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE archive TO archive_user;"

# Start archive node
mina-archive run \
  --postgres-uri postgresql://archive_user:your-secure-password@localhost:5432/archive \
  --server-port 3086
```

If upgrading an existing Berkeley database, see [Archive Upgrade](/network-upgrades/mesa/archive-upgrade).

### Rosetta API

```bash
sudo apt-get install -y mina-rosetta-devnet=4.0.0-rc2-3418329

mina-rosetta \
  --port 3087 \
  --archive-uri postgresql://archive_user:your-secure-password@localhost:5432/archive \
  --graphql-uri http://localhost:3085/graphql
```

### Connecting Mina Daemon to Archive

Configure your daemon to send blocks to the archive node:

```bash
mina daemon \
  --peer-list-url https://storage.googleapis.com/o1labs-gitops-infrastructure/mina-mesa-rc/mina-mesa-rc-peer-list-url.txt \
  --archive-address localhost:3086
```

## Verification

After starting your node, verify connectivity to Mesa Trail:

### Check Node Status

```bash
mina client status
```

### Monitor Logs

```bash
# For the systemd service
journalctl -u mina -f
```

## Network Resources

Chain data and configuration for Mesa Trail. The network is identified as `mesa-rc` in infrastructure paths and explorer URLs.

### Chain Data

| Resource | Location |
| --- | --- |
| Seed peer list | [`mina-mesa-rc-peer-list-url.txt`](https://storage.googleapis.com/o1labs-gitops-infrastructure/mina-mesa-rc/mina-mesa-rc-peer-list-url.txt) |
| Genesis config | [`mina-mesa-rc-genesis-config.json`](https://storage.googleapis.com/o1labs-gitops-infrastructure/mina-mesa-rc/mina-mesa-rc-genesis-config.json) |
| Precomputed blocks | `https://storage.googleapis.com/mesa-rc-precomputed-blocks/` |
| Archive database dumps | `https://storage.googleapis.com/mina-archive-dumps/` |
| Block explorer | [MinaExplorer — `mesa-rc`](https://o1-labs.github.io/mina-explorer/#/blocks?network=mesa-rc) |
| Faucet | [faucet.minaprotocol.com](https://faucet.minaprotocol.com/) |

### Precomputed Blocks

Precomputed blocks are published to the `mesa-rc-precomputed-blocks` bucket, one JSON file per block, named `mina-mesa-rc-1-<height>-<state-hash>.json`:

```bash
# List recent blocks
gcloud storage ls gs://mesa-rc-precomputed-blocks/ | tail

# Fetch a single block over HTTPS (no Google Cloud CLI required)
curl -O https://storage.googleapis.com/mesa-rc-precomputed-blocks/mina-mesa-rc-1-<height>-<state-hash>.json
```

Use these to bootstrap an archive node with [`mina-archive-blocks`](/network-upgrades/mesa/archive-upgrade), or to replay chain history without running a full node.

### Archive Database Dumps

Hourly archive dumps are published to the `mina-archive-dumps` bucket with the prefix `mina-mesa-rc`, named `mina-mesa-rc-1-archive-dump-<YYYY-MM-DD>_<HHMM>.sql.tar.gz`:

```bash
# List available dumps
gcloud storage ls gs://mina-archive-dumps/mina-mesa-rc-1-archive-dump-*

# Download and restore the latest dump
curl -O https://storage.googleapis.com/mina-archive-dumps/mina-mesa-rc-1-archive-dump-<YYYY-MM-DD>_<HHMM>.sql.tar.gz
tar -xzf mina-mesa-rc-1-archive-dump-<YYYY-MM-DD>_<HHMM>.sql.tar.gz
psql -d archive -f mina-mesa-rc-1-archive-dump-<YYYY-MM-DD>_<HHMM>.sql
```

A dump is the fastest way to stand up an archive node against Mesa Trail without replaying the chain, and it is the same mechanism behind the [_trustful_](/network-upgrades/mesa/glossary#trustful) archive upgrade path.

## Support and Feedback

If you encounter issues or have feedback about Mesa Trail:

1. Check the [Mina Protocol Discord](https://discord.gg/minaprotocol) for community support
2. Report issues on the [Mina GitHub repository](https://github.com/MinaProtocol/mina/issues)
3. Join the Mesa upgrade discussions in the community channels

## Next Steps

- Test your applications and infrastructure against Mesa Trail
- Review the [Mesa Upgrade](/network-upgrades/mesa) overview for mainnet preparation
- Provide feedback to help improve the Mesa upgrade process
