For Validators

BAM (Blockspace Assembly Market) extends the Jito-Solana client to interface with external schedulers via gRPC, receiving pre-sequenced transaction bundles and executing them in FIFO order with respect to account locks. This design maintains network security while enabling sophisticated transaction ordering strategies.

Access to BAM is fully permissionless, and any validator can join mainnet or testnet by following the instructions below.

Quick Start Guide

Step 1: Understanding the Architecture

BAM Architecture Overview
BAM Architecture Overview

The BAM system operates within a Trusted Execution Environment (TEE), providing secure transaction scheduling while maintaining validator sovereignty over block production.

Step 2: Download the Source Code

The BAM client is open source and available on GitHub:

Step 3: Choose Your Region

Connect to the BAM cluster closest to your validator:

NetworkRegionBAM URL
MainnetπŸ‡³πŸ‡± Amsterdamhttp://amsterdam.mainnet.bam.jito.wtf
MainnetπŸ‡©πŸ‡ͺ Frankfurthttp://frankfurt.mainnet.bam.jito.wtf
MainnetπŸ‡¬πŸ‡§ Londonhttp://london.mainnet.bam.jito.wtf
MainnetπŸ‡ΊπŸ‡Έ New Yorkhttp://ny.mainnet.bam.jito.wtf
MainnetπŸ‡ΊπŸ‡Έ Salt Lake Cityhttp://slc.mainnet.bam.jito.wtf
MainnetπŸ‡―πŸ‡΅ Tokyohttp://tokyo.mainnet.bam.jito.wtf
MainnetπŸ‡ΈπŸ‡¬ Singaporehttp://singapore.mainnet.bam.jito.wtf
TestnetπŸ‡ΊπŸ‡Έ New Yorkhttp://ny.testnet.bam.jito.wtf
TestnetπŸ‡ΊπŸ‡Έ Dallashttp://dallas.testnet.bam.jito.wtf
TestnetπŸ‡ΊπŸ‡Έ Salt Lake Cityhttp://slc.testnet.bam.jito.wtf

Step 4: Configure Your Validator

Running the BAM validator client is similar to running Jito-Solana, but requires one mandatory configuration addition:

# Required BAM configuration flag
--bam-url <BAM_NODE_URL>                    # Connect to BAM scheduler

# Additional important flags for Block Engine integration
--shred-receiver-address <ADDRESS>          # Shred receiver address, described in https://docs.jito.wtf/lowlatencytxnsend/#api
--block-engine-url <BLOCK_ENGINE_URL>       # Block engine endpoint, described in https://docs.jito.wtf/lowlatencytxnsend/#api
ℹ️
Leader Schedule Requirement:
Your validator needs to be in the leader schedule in order to connect to BAM. BAM will only establish connections with validators that have upcoming leader slots.

Testnet Example:

solana-validator \
  --identity /path/to/validator-keypair.json \
  --vote-account /path/to/vote-account-keypair.json \
  --ledger /path/to/ledger \
  --bam-url http://ny.testnet.bam.jito.wtf \
  --shred-receiver-address 64.130.35.224:1002 \
  --block-engine-url https://ny.testnet.block-engine.jito.wtf \
  --rpc-port 8899 \
  --tip-payment-program-pubkey GJHtFqM9agxPmkeKjHny6qiRKrXZALvvFGiKf11QE7hy \
  --tip-distribution-program-pubkey F2Zu7QZiTYUhPd7u9ukRVwxh7B71oA3NMJcHuCHc29P2 \
  --merkle-root-upload-authority 7heQNXEtxSv3wV8sNbuQsDN5xNGbbpLvHGiyXuJxEf7n \
  --commission-bps 800 \
  # ... your other testnet configuration

Mainnet Example:

solana-validator \
  --identity /path/to/validator-keypair.json \
  --vote-account /path/to/vote-account-keypair.json \
  --ledger /path/to/ledger \
  --bam-url http://ny.mainnet.bam.jito.wtf \
  --shred-receiver-address 141.98.216.96:1002 \
  --block-engine-url https://ny.mainnet.block-engine.jito.wtf \
  --rpc-port 8899 \
  --tip-payment-program-pubkey T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt \
  --tip-distribution-program-pubkey 4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7 \
  --merkle-root-upload-authority 8F4jGUmxF36vQ6yabnsxX6AQVXdKBhs8kGSUuRKSg8Xt \
  --commission-bps 800 \
  # ... your other mainnet configuration
ℹ️
Latest On-Chain Addresses:
For the latest tip payment program and tip distribution program addresses, and merkle root upload authority, see: https://jito-foundation.gitbook.io/mev/mev-payment-and-distribution/on-chain-addresses
ℹ️
Latest Block Engine Addresses:
For the latest block-engine-url and shred-receiver-address: https://docs.jito.wtf/lowlatencytxnsend/#api

Enabling Metrics Collection (Optional)

To enable metrics collection for your BAM validator, export the following environment variable:

Testnet:

export SOLANA_METRICS_CONFIG="host=http://bam-public-metrics.jito.wtf:8086,db=testnet-bam-validators,u=testnet-bam-validator,p=wambamdamn"

Mainnet:

export SOLANA_METRICS_CONFIG="host=http://bam-public-metrics.jito.wtf:8086,db=mainnet-bam-validators,u=mainnet-bam-validator,p=wambamdamn"
⚠️
Requires Restart:
This configuration will require a validator restart to take effect.

Step 5: Runtime Configuration (Optional)

You can update the BAM configuration during runtime using the Admin RPC without restarting your validator.

Enable or Update BAM URL

# Update BAM URL without restarting
echo '{"jsonrpc":"2.0","id":1,"method":"setBamUrl","params":["http://ny.mainnet.bam.jito.wtf"]}' | \
socat - UNIX-CONNECT:admin.rpc

Disable BAM

# Disable BAM (returns to normal Agave mode)
echo '{"jsonrpc":"2.0","id":1,"method":"setBamUrl","params":[null]}' | \
socat - UNIX-CONNECT:admin.rpc
ℹ️
Runtime Changes:
These commands take effect immediately - no validator restart required. Use the operational modes table below to understand which mode your validator will be in.

Alternative: Using the CLI

You can also configure BAM using the agave-validator CLI tool:

# Set or update BAM URL
agave-validator --ledger <DIR> set-bam-config --bam-url <bam_url>

# Disable BAM (leave --bam-url empty)
agave-validator --ledger <DIR> set-bam-config --bam-url

Example:

# Enable BAM with NY mainnet endpoint
agave-validator --ledger /path/to/ledger set-bam-config --bam-url http://ny.mainnet.bam.jito.wtf

# Disable BAM
agave-validator --ledger /path/to/ledger set-bam-config --bam-url

Operational Modes

Your validator operates in one of these modes depending on your configuration:

ModeDescriptionSchedulerBundle/Txn Source
Normal AgaveStandard Solana validator behaviorInternal Agave SchedulerTPU ingestion
Block-EngineJito MEV-enhanced operationInternal with Block EngineJito Block Engine & (Relayer TPU || TPU)
BAMExternal scheduler delegationExternal BAM SchedulerBAM Node via gRPC

πŸ”’ Security & Audits

ℹ️
Professional Audits:
BAM undergoes rigorous security review by leading blockchain security firms to ensure validator safety and network integrity.

Current Audit Status:

Support