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: Choose Your Region

Connect to the BAM cluster closest to your validator:

NetworkRegionBAM URL
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 3: Configure Your Validator

Running a BAM validator requires two mandatory configuration additions to your existing Jito-Solana setup:

# Required BAM configuration flags
--bam-url <BAM_NODE_URL>                    # Connect to BAM scheduler
--enable-rpc-transaction-history            # Enable fee payment confirmation
â„šī¸
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 \
  --enable-rpc-transaction-history \
  --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 \
  --enable-rpc-transaction-history \
  --rpc-port 8899 \
  # ... your other mainnet configuration

Enabling Metrics Collection (Optional)

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

export SOLANA_METRICS_CONFIG="host=http://bam-public-metrics.jito.wtf:8086,db=testnet-bam-validators,u=testnet-bam-validator,p=wambamdamn"
âš ī¸
Requires Restart:
This configuration will require a validator restart to take effect.

Step 4: 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:

  • Ottersec - Validator code audit (completion mid-August 2025)
  • Anza - Validator code review (completion mid-August 2025)
  • Asymmetric Research - Node code audit (in progress)

Support