BAM Documentation

Blockspace Assembly Market (BAM) for Jito-Solana

Overview

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

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

NetworkRegionBAM URL
MainnetπŸ‡³πŸ‡± Amsterdamhttp://amsterdam.mainnet.bam.jito.wtf
MainnetπŸ‡©πŸ‡ͺ Frankfurthttp://frankfurt.mainnet.bam.jito.wtf
MainnetπŸ‡ΊπŸ‡Έ New Yorkhttp://ny.mainnet.bam.jito.wtf
TestnetπŸ‡ΊπŸ‡Έ New Yorkhttp://ny.testnet.bam.jito.wtf

Step 4: Configure Your Validator

Running the BAM validator client requires specific configuration flags:

# 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
--block-engine-url <BLOCK_ENGINE_URL>       # Block engine endpoint

ℹ️ 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.

Operational Modes

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

Normal Agave

Standard Solana validator behavior using internal scheduler.

Block-Engine

Jito MEV-enhanced operation with internal scheduler + Block Engine.

BAM Mode

External scheduler delegation via gRPC to BAM Node (TEE).

BAMBAM Visual Builder

The BAMBAM Visual Builder allows you to create custom transaction scheduling logic without writing Rust code. It generates native plugins compatible with the BAM Client's InstalledScheduler interface.

  • Scheduler Plugins: Implement custom ordering logic (FIFO, Priority, etc.)
  • Geyser Plugins: Stream account and transaction data for indexing.
  • Seamless Deployment: Push plugins directly to your cluster with hot-reload support.