Skip to main content

Binary Setup

Welcome to the t3rn Executor Setup! This guided process will help you configure your executor with ease, providing step-by-step instructions to ensure a smooth start. Let's get you set up and ready to operate efficiently across multiple blockchain networks.

Executor Binary

Download Executor Binary

1. Download the executable (tar.gz) Executor binary file according to your OS from here: https://github.com/t3rn/executor-release/releases/

Optional: Verify the download by comparing the SHA256 checksum with the provided sha256sum file to ensure file integrity

Installation Steps

For Ubuntu

# Create and navigate to t3rn directory
mkdir t3rn
cd t3rn

# Download latest release
curl -s https://api.github.com/repos/t3rn/executor-release/releases/latest | \
grep -Po '"tag_name": "\K.*?(?=")' | \
xargs -I {} wget https://github.com/t3rn/executor-release/releases/download/{}/executor-linux-{}.tar.gz

# Extract the archive
tar -xzf executor-linux-*.tar.gz

# Navigate to the executor binary location
cd executor/executor/bin

For macOS

# Create and navigate to t3rn directory
mkdir t3rn
cd t3rn

# Download latest release
curl -s https://api.github.com/repos/t3rn/executor-release/releases/latest | \
grep -o '"tag_name": "[^"]*' | \
cut -d'"' -f4 | \
xargs -I {} curl -LO https://github.com/t3rn/executor-release/releases/download/{}/executor-macos-{}.tar.gz

# Extract the archive
tar -xzf executor-macos-*.tar.gz

# Navigate to the executor binary location
cd executor/executor/bin

Configure Settings and Environment Required Variables

To set the environment variables, copy and paste each command into your terminal. These commands will configure the necessary settings for your Executor to run properly. Make sure you adjust the variable values to your own.

GENERAL SETTINGS

1. Set your preferred Node Environment. Example:

export ENVIRONMENT=testnet

2. Set your log settings:

export LOG_LEVEL=debug
export LOG_PRETTY=false

3. Specify limit on gas usage

This will stop your Executor from running if gas rises above this level. The value is in gwei. The default is 1000 gwei.

Example: export EXECUTOR_MAX_L3_GAS_PRICE=100

PRIVATE KEYS

1. Set the PRIVATE_KEY_LOCAL variable of your Executor, which is the private key of the wallet you will use. The example below is a fake generated key that should/cannot not be used:

export PRIVATE_KEY_LOCAL=dead93c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56dbeef
Executor Privacy

NETWORKS & RPC

1. Add your preferred networks to operate on. Example:

export EXECUTOR_ENABLED_NETWORKS='arbitrum,base,binance,ethereum,linea,,optimism,t3rn'
Available networks

If your wallet balance falls below the threshold on one of your enabled networks, that specific network will be removed.

Here's where you can find all of our supported networks: Supported network names.

2. Add support for your preferred assets

By default you support all assets, but you can tweak this variable and remove those you don't want to support.

export EXECUTOR_ENABLED_ASSETS="eth,trn,t3mon,t3sei,mon,sei"

3. Configure RPC URL's

You can add your custom RPC URLs or skip this step to automatically use the default RPC URLs.

Example

export RPC_ENDPOINTS='{
"l2rn": ["https://t3rn-b2n.blockpi.network/v1/rpc/public", "https://b2n.rpc.caldera.xyz/http"],
"arbt": ["https://arbitrum-sepolia.drpc.org", "https://sepolia-rollup.arbitrum.io/rpc"],
"bast": ["https://base-sepolia-rpc.publicnode.com", "https://base-sepolia.drpc.org"],
"blst": ["https://sepolia.blast.io", "https://blast-sepolia.drpc.org"],
"mont": ["https://testnet-rpc.monad.xyz"],
"opst": ["https://sepolia.optimism.io", "https://optimism-sepolia.drpc.org"],
"unit": ["https://unichain-sepolia.drpc.org", "https://sepolia.unichain.org"]
}'

You can add multiple RPCs for each network by separating with comma, here's an example: "arbt": ["https://arbitrum-sepolia.drpc.org", "https://sepolia-rollup.arbitrum.io/rpc"]

A good resource for finding RPC URLs for EVM networks is ChainList.

4. Enable orders processing via API

The default value to EXECUTOR_PROCESS_PENDING_ORDERS_FROM_API is true.

The benefit of having this set to true and using the API to process orders is higher reliability in executions and that all events are included.

Set export EXECUTOR_PROCESS_PENDING_ORDERS_FROM_API=false if you want to process orders via RPC. Set to true to process via our API.

Running the Executor

Start

To start the Executor, run the following command:

./executor

Executor Binary Walkthrough

Running in Background

# Install screen (Ubuntu)
sudo apt-get install screen

# Create and start a new screen session
screen -S t3rn-executor

# Start the executor in the screen session
./executor

# To detach: Press Ctrl + A, then D
# To reattach: screen -r t3rn-executor
Option 2: Using tmux (Modern Alternative)
# Install tmux (Ubuntu)
sudo apt-get install tmux

# Create and start new session
tmux new -s t3rn-executor

# Start the executor in the tmux session
./executor

# To detach: Press Ctrl + B, then D
# To reattach: tmux attach -t t3rn-executor
Option 3: Using systemd (Ubuntu Only)

For a permanent solution that starts automatically on boot, you can create a systemd service. If you don’t know what this is, you don’t need it. Contact your sysadmin or check the systemd docs for details.

Verification & Troubleshooting

To verify the executor is running correctly:

  1. Check the terminal output for any error messages
  2. Monitor the logs using the configured log level
  3. Verify network connections to enabled networks

If you encounter issues:

  • Verify all environment variables are set correctly
  • Ensure your private key is valid
  • Check network connectivity to enabled networks
  • Verify sufficient balance in your wallet for each network

For further assistance, join our Discord community.