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
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:
Network | Region | BAM URL |
---|---|---|
Testnet | đēđ¸ New York | http://ny.testnet.bam.jito.wtf |
Testnet | đēđ¸ Dallas | http://dallas.testnet.bam.jito.wtf |
Testnet | đēđ¸ Salt Lake City | http://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
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"
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
Operational Modes
Your validator operates in one of these modes depending on your configuration:
Mode | Description | Scheduler | Bundle/Txn Source |
---|---|---|---|
Normal Agave | Standard Solana validator behavior | Internal Agave Scheduler | TPU ingestion |
Block-Engine | Jito MEV-enhanced operation | Internal with Block Engine | Jito Block Engine & (Relayer TPU || TPU) |
BAM | External scheduler delegation | External BAM Scheduler | BAM Node via gRPC |
đ Security & Audits
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
- Technical Questions: Discord Community
- BAM Technical Forum: BAM Forum