Connect to Mesa Preflight Network
The Mesa preflight network is a testing environment for validating the Mesa upgrade before deployment to devnet and mainnet. This network allows node operators and developers to test their infrastructure and applications with the new Mesa release.
The Mesa preflight network hard-forked at 2026-04-27 13:00 UTC. The post-fork chain is now running the Mesa release 4.0.0-preflight-3f038cb, which bumps the transaction protocol version to 5.0.0.
The transaction protocol bump is a breaking wire-format change: any node still running a pre-fork build (including the stop-slot release 4.0.0-preflight-stop-2967b39 and the original preflight build 4.0.0-preflight1-b649c79) will reject the new transaction format and is no longer compatible with the network. Upgrade to 4.0.0-preflight-3f038cb to resume participation.
zkApp developers must rebuild and redeploy against o1js@3.0.0-mesa.698ca — the first o1js release that targets transaction protocol v5.0.0. Transactions produced by earlier o1js versions will be rejected by post-fork nodes.
A dedicated Upgrade Steps page covering the post-fork operator checklist will be linked from the Mesa Upgrade sidebar once it ships.
The preflight network is intended for testing purposes only. This network may experience instability, breaking changes, and unexpected behavior. Data on this network should not be considered persistent or reliable.
Available Build Versions
The Mesa preflight network uses the following build versions:
Current version (install this): 4.0.0-preflight-3f038cb — post-hard-fork release. Implements transaction protocol version 5.0.0 and is the only build compatible with the post-fork chain.
Compatible o1js release: o1js@3.0.0-mesa.698ca — the matching SDK for transaction protocol v5.0.0. Install with npm install o1js@3.0.0-mesa.698ca (or the equivalent for your package manager) when developing or redeploying zkApps against the post-fork preflight network.
Previous versions (historical, do not install on new nodes):
4.0.0-preflight-stop-2967b39— stop-slot release used to carry nodes up to the fork. Pre-fork transaction protocol; incompatible with the post-fork chain.4.0.0-preflight1-b649c79— original preflight build. Listed for reference only.
Docker Images
Docker images are available for both amd64 and arm64 architectures, on the bookworm and noble base distributions:
- Mina Daemon:
gcr.io/o1labs-192920/mina-daemon:4.0.0-preflight-3f038cb-bookworm-mesa - Archive Node:
gcr.io/o1labs-192920/mina-archive:4.0.0-preflight-3f038cb-bookworm-mesa - Rosetta:
gcr.io/o1labs-192920/mina-rosetta:4.0.0-preflight-3f038cb-bookworm-mesa
For noble, swap bookworm for noble in the tag (e.g. mina-daemon:4.0.0-preflight-3f038cb-noble-mesa).
Debian Packages
Debian packages are available from the unstable repository:
Repository: unstable.apt.packages.minaprotocol.com
Channel: preflight
Codenames: bookworm, noble
Available packages (each at version 4.0.0-preflight-3f038cb):
mina-mesamina-archive-mesamina-rosetta-mesa
For detailed information about the Debian repository structure and configuration, please refer to the Debian Repository documentation.
Connecting to the Network
To connect your node to the Mesa preflight network, you must use the preflight network seed peer list.
Required Parameter
Add the following parameter to your mina daemon command:
--peer-list-url https://storage.googleapis.com/o1labs-gitops-infrastructure/mina-mesa-network/mina-mesa-network-seeds.txt
Example: Running with Docker
To start a Mina daemon node using Docker:
docker run --name mina-mesa-preflight -d \
-p 8302:8302 \
--restart=always \
gcr.io/o1labs-192920/mina-daemon:4.0.0-preflight-3f038cb-bookworm-mesa \
daemon \
--peer-list-url https://storage.googleapis.com/o1labs-gitops-infrastructure/mina-mesa-network/mina-mesa-network-seeds.txt
For production deployments, you'll want to mount configuration directories and add additional flags:
docker run --name mina-mesa-preflight -d \
-p 8302:8302 \
--restart=always \
-v $(pwd)/.mina-config:/root/.mina-config \
gcr.io/o1labs-192920/mina-daemon:4.0.0-preflight-3f038cb-bookworm-mesa \
daemon \
--peer-list-url https://storage.googleapis.com/o1labs-gitops-infrastructure/mina-mesa-network/mina-mesa-network-seeds.txt \
--libp2p-keypair /root/.mina-config/keys/libp2p-key
Example: Running with Debian Package
First, install dependencies and configure the repository:
# Step 1: Install dependencies
sudo apt-get install -y lsb-release ca-certificates wget gnupg
# Step 2: Import the GPG key
wget -q https://unstable.apt.packages.minaprotocol.com/repo-signing-key.gpg \
-O /etc/apt/trusted.gpg.d/minaprotocol.gpg
# Step 3: Add the unstable repository with preflight channel
echo "deb https://unstable.apt.packages.minaprotocol.com $(lsb_release -cs) preflight" | \
sudo tee /etc/apt/sources.list.d/mina-preflight.list
# Step 4: Update and install
sudo apt-get update
sudo apt-get install -y mina-mesa=4.0.0-preflight-3f038cb
Then start the daemon:
mina daemon \
--peer-list-url https://storage.googleapis.com/o1labs-gitops-infrastructure/mina-mesa-network/mina-mesa-network-seeds.txt \
--libp2p-keypair ~/.mina-config/keys/libp2p-key
Running Archive Node
If you have an existing Berkeley archive database that you want to upgrade to Mesa, please refer to the comprehensive Archive Upgrade guide for detailed instructions on:
- Migration prerequisites and requirements
- Running the upgrade script
- Rollback procedures
- Database schema changes
- Verification steps
Installing and Running Mesa Archive Node
An archive node stores the full history of the blockchain and provides a GraphQL API for querying historical data. It requires a PostgreSQL database.
Installation with Debian:
# Step 1: Install dependencies
sudo apt-get install -y lsb-release ca-certificates wget gnupg postgresql postgresql-contrib
# Step 2: Import the GPG key
wget -q https://unstable.apt.packages.minaprotocol.com/repo-signing-key.gpg \
-O /etc/apt/trusted.gpg.d/minaprotocol.gpg
# Step 3: Add the repository
echo "deb https://unstable.apt.packages.minaprotocol.com $(lsb_release -cs) preflight" | \
sudo tee /etc/apt/sources.list.d/mina-preflight.list
# Step 4: Install mina-archive-mesa
sudo apt-get update
sudo apt-get install -y mina-archive-mesa=4.0.0-preflight-3f038cb
# Step 5: Create PostgreSQL database
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;"
# Step 6: Start the archive node
mina-archive run \
--postgres-uri postgresql://archive_user:your-secure-password@localhost:5432/archive \
--server-port 3086
Using Docker:
# Start the archive node (assumes you have a PostgreSQL server running)
docker run --name mina-archive-mesa -d \
-p 3086:3086 \
--restart=always \
gcr.io/o1labs-192920/mina-archive:4.0.0-preflight-3f038cb-bookworm-mesa \
mina-archive run \
--postgres-uri postgresql://archive_user:your-secure-password@postgres-host:5432/archive \
--server-port 3086
Connecting Mina Daemon to Archive:
Configure your mina daemon to send blocks to the archive node:
mina daemon \
--peer-list-url https://storage.googleapis.com/o1labs-gitops-infrastructure/mina-mesa-network/mina-mesa-network-seeds.txt \
--archive-address localhost:3086
Installing and Running Rosetta
Rosetta is a standardized API for blockchain integration. The Rosetta API requires both a mina daemon and an archive node.
Installation with Debian:
# Step 1: Install dependencies (if not already done)
sudo apt-get install -y lsb-release ca-certificates wget gnupg
# Step 2: Import the GPG key (if not already done)
wget -q https://unstable.apt.packages.minaprotocol.com/repo-signing-key.gpg \
-O /etc/apt/trusted.gpg.d/minaprotocol.gpg
# Step 3: Add the repository (if not already done)
echo "deb https://unstable.apt.packages.minaprotocol.com $(lsb_release -cs) preflight" | \
sudo tee /etc/apt/sources.list.d/mina-preflight.list
# Step 4: Install mina-rosetta-mesa
sudo apt-get update
sudo apt-get install -y mina-rosetta-mesa=4.0.0-preflight-3f038cb
# Step 5: Start Rosetta
# Rosetta connects to both the mina daemon and archive node
mina-rosetta \
--port 3087 \
--archive-uri http://localhost:3086/graphql \
--graphql-uri http://localhost:3085/graphql
Using Docker:
docker run --name mina-rosetta-mesa -d \
-p 3087:3087 \
--restart=always \
gcr.io/o1labs-192920/mina-rosetta:4.0.0-preflight-3f038cb-bookworm-mesa \
--port 3087 \
--archive-uri http://archive-host:3086/graphql \
--graphql-uri http://mina-daemon-host:3085/graphql
Note: Rosetta requires:
- A running mina daemon (GraphQL endpoint, typically port 3085)
- A running archive node (GraphQL endpoint, typically port 3086)
- Both must be fully synced for Rosetta to function properly
Nightly Builds
In addition to the preflight release builds, nightly builds are also available for testing the latest changes.
Repository: nightly.apt.packages.minaprotocol.com
Nightly builds are available for both Debian packages and Docker images. These builds represent the latest development state and may be even more unstable than preflight releases.
For more information about nightly builds and repository configuration, see the Debian Repository documentation.
Verification
After starting your node, verify connectivity to the preflight network:
Check Node Status
# For Docker
docker exec -it mina-mesa-preflight mina client status
# For Debian installation
mina client status
Monitor Logs
# For Docker
docker logs -f mina-mesa-preflight
# For systemd service (Debian)
journalctl -u mina -f
Support and Feedback
If you encounter issues or have feedback about the Mesa preflight network:
- Check the Mina Protocol Discord for community support
- Report issues on the Mina GitHub repository
- Join the Mesa upgrade discussions in the community channels
Next Steps
- Explore additional Mesa upgrade documentation
- Test your applications and infrastructure against the preflight network
- Provide feedback to help improve the Mesa upgrade process