Skip to content

Getting Started

This guide will help you install txpark and deploy your first testnet.

Prerequisites

Before using txpark, ensure you have the following installed and configured:

Required Tools

  • kubectl (v1.25+) - Kubernetes command-line tool
  • gcloud - Google Cloud SDK
  • GitLab access - For CI artifact fetching (optional)

Access Requirements

  • Access to a GKE cluster with txpark configured
  • Kubectl context configured to point to the cluster
  • Sufficient permissions to create namespaces and deploy resources

GitLab CLI (glab)

For deploying testnets with sequencer nodes, you'll need the GitLab CLI configured:

# Install glab (if not already installed)
# See: https://gitlab.com/gitlab-org/cli

# Authenticate with GitLab
glab auth login

# Verify authentication
glab auth status

The CLI uses glab to fetch build artifacts from GitLab CI pipelines.

Installation

Use the install script to automatically download the correct binary for your platform:

curl -sSL https://doc.txpark.nomadic-labs.com/install.sh | bash

The script will: - Detect your OS and architecture automatically - Download the latest release - Install to /usr/local/bin/txpark (may require sudo) - Verify the installation

Option 2: Build from Source

# Clone the repository
git clone https://gitlab.com/tezos-infra/evm/txpark.git
cd txpark

# Build the binary
go build -o bin/txpark cmd/txpark/main.go

# Move to PATH
sudo mv bin/txpark /usr/local/bin/txpark

Verify Installation

txpark version

Expected output:

txpark v1.0.0
Commit: abc1234
Built: 2026-03-19
Go: go1.22.0

First Testnet Deployment

Let's deploy your first testnet step-by-step.

1. Check Cluster Access

Verify you can access the Kubernetes cluster:

kubectl cluster-info
kubectl get nodes

2. Deploy a Basic Testnet

Deploy a simple testnet with automatic cleanup after 1 hour:

txpark deploy my-first-testnet

This creates a testnet with:

  • Blockscout Explorer
  • TzKT Indexer
  • Faucet Service
  • 1-hour lifetime (auto-cleanup)

3. Deploy with EVM Sequencer

To deploy a full testnet with EVM sequencer node:

Prerequisites

You need to run scripts/setup-sequencer.sh my-first-testnet first to generate required keys and configuration.

# Generate sequencer configuration
./scripts/setup-sequencer.sh my-first-testnet

# Deploy with sequencer and fetch binaries from master branch
txpark deploy my-first-testnet --sequencer --build-branch master

This will:

  1. Trigger a GitLab CI pipeline to build binaries
  2. Create namespace and Kubernetes resources
  3. Deploy EVM sequencer, rollup node, and all services
  4. Configure automatic HTTPS ingress

4. Monitor Deployment

Check the status of your testnet:

txpark status my-first-testnet

Example output:

═══════════════════════════════════════════════════════════════
Testnet: my-first-testnet
Namespace: testnet-my-first-testnet
═══════════════════════════════════════════════════════════════

Metadata:
  Created:  2026-03-19 14:00:00 UTC (5m ago)
  TTL:      1h0m0s
  Expires:  2026-03-19 15:00:00 UTC (in 55m)

Endpoints:
  Dashboard:           https://my-first-testnet.txpark.nomadic-labs.com/
  Blockscout Explorer: https://my-first-testnet-blockscout.txpark.nomadic-labs.com/
  Faucet:              https://my-first-testnet-faucet.txpark.nomadic-labs.com/
  EVM RPC:             https://my-first-testnet.txpark.nomadic-labs.com/rpc
  Smart Rollup Node:   https://my-first-testnet.txpark.nomadic-labs.com/rollup
  TzKT API:            https://my-first-testnet.txpark.nomadic-labs.com/tzkt

Components:
  NAME                              STATUS    READY    RESTARTS  AGE
  evm-sequencer-xxx                 Running   2/2      0         5m
  my-first-testnet-blockscout-xxx   Running   1/1      0         5m
  my-first-testnet-tzkt-api-xxx     Running   1/1      0         5m

5. View Logs

Watch the EVM sequencer logs:

txpark logs my-first-testnet evm-sequencer --follow

6. Access Your Testnet

Open the dashboard in your browser:

https://my-first-testnet.txpark.nomadic-labs.com/

7. Clean Up

When you're done, destroy the testnet:

txpark destroy my-first-testnet

Tip

If you didn't specify --permanent, the testnet will auto-delete after the lifetime expires.

Basic Commands Overview

Here are the essential commands you'll use:

Command Description
txpark deploy <name> Deploy a new testnet
txpark list List all running testnets
txpark status <name> Show testnet status
txpark logs <name> <component> View component logs
txpark shell <name> Open shell in pod
txpark upgrade <name> Upgrade testnet binaries
txpark destroy <name> Delete testnet

Common Options

Lifetime Management

# 1-hour testnet (default)
txpark deploy test-1h --lifetime 1h

# 4-hour testnet
txpark deploy test-4h --lifetime 4h

# Permanent testnet (no auto-deletion)
txpark deploy test-perm --permanent

Resource Profiles

# Default resources
txpark deploy test-default --profile default

# High-performance (2x resources)
txpark deploy test-highperf --profile high-performance --sequencer --build-branch master

Next Steps

Now that you've deployed your first testnet, explore:

Troubleshooting

Command not found

If txpark command is not found, ensure /usr/local/bin is in your PATH:

echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Kubectl context not set

Ensure your kubectl context is configured:

gcloud container clusters get-credentials txpark-cluster \
  --region europe-west1 \
  --project nl-tezos-x-alpha-infra

CI pipeline fails

Check your GitLab authentication:

glab auth status

If not authenticated, run:

glab auth login