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.

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πŸ‡ΊπŸ‡Έ 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
ℹ️
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 \
  --rpc-port 8899 \
  # ... 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 \
  --rpc-port 8899 \
  # ... your other mainnet configuration

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.

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