SolanaMevBotSolanaMevBot

Config Examples

Complete SOL, USDC, and combined configurations for SolanaMevBot 2.0.0

Each example is a complete config.toml. Choose one, replace the endpoint and key placeholders, and run ./smb-onchain run config.toml. The key file must already exist; see Getting Started for first-run import.

SOL with one RPC sender

This uses the executor's flashloan vault for trading capital and caps the sender at five submissions per second across all selected routes. Keep native SOL in the wallet for fees, tips, and account creation.

[bot]
rpc_url = "https://YOUR_READ_RPC"
encrypted_key_path = "~/keys/ENCRYPTED_PRIVATE_KEY"
flashloan = true

[auto.sol]
min_total_profit = 5_000_000 # 0.005 SOL
min_tx_count = 2
lookback_secs = 3_600
max_routes = 10
process_delay = 100

[[senders]]
name = "rpc"
type = "json_rpc"
urls = ["https://YOUR_SENDING_RPC"]
rate_limit_per_second = 5
compute_unit_price = { strategy = "Random", from = 1000, to = 2000, count = 1 }
request_params = { maxRetries = 0 }

[log]
enable_sending_log_summary = true
summary_interval_seconds = 60

USDC with wallet capital

This settles trades in USDC and uses the wallet's USDC balance. Native SOL is still needed for fees and account creation. 750_000 means 0.75 USDC of observed profit during the lookback window.

[bot]
rpc_url = "https://YOUR_READ_RPC"
encrypted_key_path = "~/keys/ENCRYPTED_PRIVATE_KEY"
flashloan = false

[auto.usdc]
min_total_profit = 750_000
min_tx_count = 2
lookback_secs = 3_600
max_routes = 10
process_delay = 100

[[senders]]
name = "rpc"
type = "json_rpc"
urls = ["https://YOUR_SENDING_RPC"]
rate_limit_per_second = 5
compute_unit_price = { strategy = "Random", from = 1000, to = 2000, count = 1 }

[log]
enable_sending_log_summary = true
summary_interval_seconds = 60

SOL and USDC with RPC and Jito

This example selects routes with at least 1 SOL or 100 USDC of observed profit over the last five minutes. Each settlement follows one route with a 400 ms delay between send passes.

Sender rate limits are omitted, so the bot uses 20 submissions per second for RPC and one for Jito, shared across both settlement profiles. Jito’s OneByOne strategy rotates the starting region for each submission. It tries the next region on a connection failure, timeout, or HTTP server error; an accepted or rejected submission stops there. Replace YOUR_JITO_UUID with your UUID, or remove the uuid line if you do not use one.

The Jito sender enables no_failure_mode: a transaction may succeed without a trade and still pay its tip and network fees. The RPC sender retains the default no_failure_mode = false.

[bot]
rpc_url = "https://YOUR_RPC_ENDPOINT"
flashloan = true
encrypted_key_path = "./ENCRYPTED_PRIVATE_KEY"

[auto.sol]
min_total_profit = 1_000_000_000 # 1 SOL
min_tx_count = 1
lookback_secs = 300
max_routes = 1
process_delay = 400

[auto.usdc]
min_total_profit = 100_000_000 # 100 USDC
min_tx_count = 1
lookback_secs = 300
max_routes = 1
process_delay = 400

[[senders]]
name = "rpc"
type = "json_rpc"
urls = ["https://YOUR_RPC_ENDPOINT"]
timeout_ms = 1500
request_params = { maxRetries = 10 }
compute_unit_price = { strategy = "Random", from = 5000, to = 20000, count = 1 }

[[senders]]
name = "jito"
type = "jito"
urls = [
  "https://ny.mainnet.block-engine.jito.wtf/api/v1",
  "https://tokyo.mainnet.block-engine.jito.wtf/api/v1",
  "https://slc.mainnet.block-engine.jito.wtf/api/v1",
  "https://amsterdam.mainnet.block-engine.jito.wtf/api/v1",
  "https://frankfurt.mainnet.block-engine.jito.wtf/api/v1",
  "https://singapore.mainnet.block-engine.jito.wtf/api/v1",
  "https://london.mainnet.block-engine.jito.wtf/api/v1",
]
sending_strategy = "OneByOne"
uuid = "YOUR_JITO_UUID"
use_separate_tip_account = false
no_failure_mode = true
tip_amount = { strategy = "ExponentialRandom", from = 1000, to = 5000, count = 1 }

[log]
enable_sending_log_summary = true
summary_interval_seconds = 5

To add another service, copy its [[senders]] block from Sending Vendor Examples. Give every sender a unique name. See Bot Configurations for defaults, units, and optional auto-rebalancing.

On this page