Configuration Schema
Complete reference for the arb-assist configuration file (config.toml
).
Top-Level Configuration
Connection Settings
rpc_url
string
Yes
-
Main RPC endpoint URL
grpc_url
string
Yes
-
GRPC streaming endpoint
grpc_token
string
No
""
Authentication token for GRPC
grpc_engine
string
Yes
-
GRPC engine type: "yellowstone"
or "thor"
mode
string
Yes
-
Output mode: "smb"
, "na"
, or "both"
port
integer
No
0
HTTP server port (0 = disabled)
helius_key
string
No
""
Helius API key for fee estimation
Core Settings
update_interval
integer
No
10000
Config update frequency (ms)
run_interval
integer
No
60000
Min time between trades per mint (ms)
halflife
integer
No
120000
Statistics decay half-life (ms)
ignore_filters
boolean
No
false
Bypass all filter thresholds
include_token2022
boolean
No
false
Include Token-2022 mints
log_output
boolean
No
false
Enable verbose logging
DEX Configuration
dexes
array[string]
Yes
-
DEX program IDs to monitor
filter_programs
boolean
No
false
Only analyze specified programs
arb_programs
array[string]
Conditional
-
Programs to monitor (required if filter_programs = true
)
exclude_mints
array[string]
No
[]
Token mints to exclude
base_mints
array[string]
Yes
-
Base tokens for arbitrage paths
Mint Selection
mints_to_arb
array[integer]
Yes
-
Mints per transaction group
mints_to_rank
integer
Yes
-
Total mints to track
output
string
Yes
-
Output filename (without extension)
Sorting Strategies
intermint_sort_strategy
object
Yes
-
Mint ranking strategy
pool_sort_strategy
object
Yes
-
Pool ranking strategy
Strategy object structure:
{
metric = "profit", # Metric name
direction = "descending" # "ascending" or "descending"
}
RPC Configuration
config_rpc_url
string
No
Same as rpc_url
RPC for generated config
sending_rpc_urls
array[string]
Yes (SMB)
-
RPCs for sending transactions
ALUTs Configuration
aluts_per_pool
integer
No
20
ALUTs to collect per pool
aluts
array[string]
No
[]
Custom ALUTs to include
Dynamic Tips
dynamic_jito_tip_mode
string
No
"none"
Tip mode: "parsed"
, "tipstream"
, or "none"
jito_uuid
string
No
""
UUID for Jito tracking
Filter Thresholds
Array of threshold objects with increasingly strict requirements:
filter_thresholds = [
{ threshold_object_1 },
{ threshold_object_2 },
...
]
Threshold Object Fields
min_profit
integer
No
0
Minimum profit (lamports)
min_profit_per_arb
integer
No
0
Min average profit per trade
min_roi
float
No
0.0
Minimum ROI ratio
min_txns
integer
No
0
Min successful arbitrages
min_fails
integer
No
0
Maximum failed transactions
min_net_volume
integer
No
0
Min directional volume
min_total_volume
integer
No
0
Min total trading volume
min_imbalance_ratio
float
No
0.0
Min volume imbalance (0-1)
max_imbalance_ratio
float
No
1.0
Max volume imbalance (0-1)
min_liquidity
integer
No
0
Min pool liquidity
min_turnover
float
No
0.0
Min volume/liquidity ratio
min_volatility
float
No
0.0
Min price volatility
min_fee_percentile
object
No
{}
Min fee percentiles (e.g., {50=1000, 80=10000}
)
max_fee_percentile
object
No
{}
Max fee percentiles (e.g., {50=10000, 80=1000000}
)
min_tip_percentile
object
No
{}
Min tip percentiles (e.g., {50=1000, 80=10000}
)
max_tip_percentile
object
No
{}
Max tip percentiles (e.g., {50=10000, 80=1000000}
)
max_cu_limit
integer
Yes
-
Max compute units
top_pool_num
integer
Yes
-
Pools to use (min 2)
memo
string
No
""
Optional memo field
Strategy Levels
Spam Levels
Array of spam strategy configurations:
spam_levels = [
{ spam_config_1 },
{ spam_config_2 },
...
]
Spam Configuration Fields
filter_level
integer
Yes
-
Maps to filter_thresholds index
bundle_groups
array[integer]
Yes
-
Which mint groups to use
process_delay
integer
No
400
Delay between attempts (ms)
min_cu_percentile
integer
No
0
Min fee percentile (0-100)
max_cu_percentile
integer
No
100
Max fee percentile (0-100)
min_cu_price
integer
No
0
Min compute unit price
max_cu_price
integer
No
1000000
Max compute unit price
tx_count
integer
No
1
Transactions per burst
fee_strategy
string
No
"Random"
Strategy: "Random"
, "Linear"
, "Exponential"
Jito Levels
Array of Jito bundle configurations:
jito_levels = [
{ jito_config_1 },
{ jito_config_2 },
...
]
Jito Configuration Fields
filter_level
integer
Yes
-
Maps to filter_thresholds index
bundle_groups
array[integer]
Yes
-
Which mint groups to use
process_delay
integer
No
400
Delay between attempts (ms)
min_tip
integer
No
0
Minimum Jito tip
max_tip
integer
No
1000000
Maximum Jito tip
min_tip_percentile
integer
No
0
Min tip percentile (0-100)
max_tip_percentile
integer
No
100
Max tip percentile (0-100)
tx_count
integer
No
1
Transactions per bundle
tip_strategy
string
No
"Random"
Strategy: "Random"
, "Linear"
, "Exponential"
sending_strategy
string
No
"AllAtOnce"
"AllAtOnce"
or "OneByOne"
no_failure_mode
boolean
No
false
Ensure all txs succeed
Fast Levels
Array of fast lane configurations:
fast_levels = [
{ fast_config_1 },
{ fast_config_2 },
...
]
Fast Configuration Fields
filter_level
integer
Yes
-
Maps to filter_thresholds index
bundle_groups
array[integer]
Yes
-
Which mint groups to use
process_delay
integer
No
400
Delay between attempts (ms)
min_tip
integer
No
0
Minimum tip amount
max_tip
integer
No
1000000
Maximum tip amount
min_tip_percentile
integer
No
0
Min tip percentile (0-100)
max_tip_percentile
integer
No
100
Max tip percentile (0-100)
tx_count
integer
No
1
Transactions per bundle
tip_strategy
string
No
"Random"
Strategy: "Random"
, "Linear"
, "Exponential"
sending_strategy
string
No
"AllAtOnce"
"AllAtOnce"
or "OneByOne"
no_failure_mode
boolean
No
false
Ensure all txs succeed
min_cu_percentile
integer
No
0
Min fee percentile (0-100)
max_cu_percentile
integer
No
100
Max fee percentile (0-100)
min_cu_price
integer
No
0
Min compute unit price
max_cu_price
integer
No
1000000
Max compute unit price
fee_strategy
string
No
"Random"
Fee strategy
Astralane Levels
Array of Astralane configurations with same structure as fast_levels.
Nextblock Levels
Array of Nextblock configurations with same structure as fast_levels.
Node1 Levels
Array of Node1 configurations with same structure as fast_levels.
Blockrazor Levels
Array of Blockrazor configurations with same structure as fast_levels.
SMB-Specific Configuration
[smb]
output = "smb-config"
max_retries = 0
enable_simple_send = false
cetiloan = true
merge_mints = true
skip_ata_creation = false
SMB Fields
output
string
No
"smb-config"
Output filename
max_retries
integer
No
0
Transaction retry attempts
enable_simple_send
boolean
No
false
Use simple send mode
cetiloan
boolean
No
true
Enable flash loans
merge_mints
boolean
No
true
Allow mint merging
skip_ata_creation
boolean
No
false
Skip ATA creation
SMB Sub-configurations
Jito Configuration
[smb.jito_config]
ips = ["192.168.1.0/24"]
min_profit = 5_000
use_min_profit = true
use_separate_tip_account = false
Fast Configuration
[smb.fast_config]
min_profit = 5_000
use_min_profit = true
auth_value = ""
request_params = { frontRunningProtection = false }
urls = ["https://fast.circular.fi/transactions/no-failure/smb"]
Astralane Configuration
[smb.astralane_config]
min_profit = 5_000
use_min_profit = true
auth_value = ""
request_params = { mevProtect = false }
Nextblock Configuration
[smb.nextblock_config]
min_profit = 5_000
use_min_profit = true
auth_value = ""
request_params = {
skipPreFlight = true,
snipeTransaction = true,
frontRunningProtection = false,
disableRetries = true,
revertOnFail = false
}
Node1 Configuration
[smb.node1_config]
min_profit = 5_000
use_min_profit = true
auth_value = ""
Blockrazor Configuration
[smb.blockrazor_config]
min_profit = 5_000
use_min_profit = true
auth_value = ""
Strategy Configuration Fields
ips
array[string]
No
[]
Allowed IP ranges (jito_config only)
min_profit
integer
No
0
Min profit to use strategy
use_min_profit
boolean
No
false
Enforce minimum profit
auth_value
string
No
""
Authentication value
use_separate_tip_account
boolean
No
false
Jito-specific
request_params
object
No
{}
Service-specific parameters
urls
array[string]
No
[]
Service URLs (fast_config only)
NotArb-Specific Configuration
[notarb]
output = "notarb-config"
jvm_args = ["-server", "-Xmx8192m"]
keypair_path = "${DEFAULT_KEYPAIR_PATH}"
protect_keypair = true
threads = 0
flash_loan = true
# ... more fields
NotArb Fields
output
string
No
"notarb-config"
Output filename
jvm_args
array[string]
No
[]
JVM arguments
keypair_path
string
Yes
-
Path to keypair file
protect_keypair
boolean
No
true
Use keypair protection
threads
integer
No
0
Thread pool size (0=dynamic)
flash_loan
boolean
No
true
Enable flash loans
max_lookup_tables
integer
No
10
Max ALUTs per transaction
meteora_bin_limit
integer
No
20
Max Meteora DLMM bins
ips_file_path
string
No
""
Path to proxy IPs file
prefunded_keypairs_path
string
No
""
Path to keypairs file
jito_targets
array[string]
No
[]
Jito endpoint URLs
max_bundle_transactions
integer
No
1
Max txs per bundle
borrow_amount
integer
No
500000000000
Flash loan amount
NotArb Sub-configurations
[notarb]
token_accounts_checker = { rpc_url = "", delay_seconds = 3 }
blockhash_updater = { rpc_url = "", delay_ms = 400 }
account_size_loader = {
rpc_url = "",
invalid_account_size = 200,
buffer_size = 1500
}
market_loader = ""
lookup_table_loader = ""
wsol_unwrapper = {
enabled = true,
check_minutes = 1,
trigger_sol = 0.5,
target_sol = 5,
priority_fee_lamports = 190,
reader_rpc_url = ""
}
# FAST configuration for NotArb
[notarb.fast_config]
auth_value = ""
urls = ["https://fast.circular.fi/transactions/no-failure/notarb"]
# ASTRALANE configuration for NotArb
[notarb.astralane_config]
auth_value = ""
Metric Types
Valid values for sorting metrics:
Financial Metrics
profit
- Total arbitrage profitroi
- Return on investmentprofit_per_arb
- Average profit per tradefee
- Transaction fees
Volume Metrics
buy_volume
- Total buy volumesell_volume
- Total sell volumenet_volume
- |buy - sell| volumetotal_volume
- buy + sell volumeimbalance
- Volume imbalance ratio
Success Metrics
successful_arbs
- Successful trade countfails
- Failed transaction countbuy_count
- Number of buyssell_count
- Number of sells
Market Metrics
liquidity
- Pool liquiditypool_age
- Time since first seenturnover
- Volume/liquidity ratiovolatility
- Price volatility measure
Environment Variables
Supported environment variable expansions:
${DEFAULT_KEYPAIR_PATH}
Default Solana keypair location
~/.config/solana/id.json
Custom variables
Any env var you define
${MY_RPC_URL}
Validation Rules
Required Fields: Must be present
Type Matching: Values must match expected types
Range Validation: Numeric values within bounds
Logical Consistency: Related fields must align
Array Lengths:
mints_to_rank >= sum(mints_to_arb)
Threshold Order: Filter thresholds in ascending strictness
Valid Enums: String values from allowed options
Last updated