Trading Strategies
This section covers the various execution strategies available in arb-assist, including spam mode, Jito bundles, and other advanced trading configurations.
Strategy Levels Overview
arb-assist supports multiple trading strategies that activate based on market conditions:
# Each strategy maps to filter threshold levels
spam_levels = [...] # Standard fast execution
jito_levels = [...] # MEV-protected bundles
fast_levels = [...] # Premium fast lanes
nextblock_levels = [...] # Next block inclusion
Each level corresponds to a filter threshold tier, allowing different strategies for different market conditions.
Spam Strategy
Configuration
spam_levels = [
{
filter_level = 0, # Maps to filter_thresholds[0]
bundle_groups = [1], # Which mint groups to use
process_delay = 400, # Delay between attempts (ms)
min_cu_percentile = 25, # Minimum fee percentile
max_cu_percentile = 50, # Maximum fee percentile
min_cu_price = 1_000, # Minimum compute unit price
max_cu_price = 10_000, # Maximum compute unit price
tx_count = 1, # Transactions per burst
fee_strategy = "Random" # Fee selection strategy
},
{
filter_level = 1, # Higher tier
bundle_groups = [1, 2], # More groups
process_delay = 300, # Faster retry
min_cu_percentile = 50,
max_cu_percentile = 75,
min_cu_price = 10_000,
max_cu_price = 50_000,
tx_count = 3, # More aggressive
fee_strategy = "Linear"
}
]
Fee Strategies
Random
fee_strategy = "Random"
Randomly selects fee within range
Good for avoiding detection
Unpredictable cost
Linear
fee_strategy = "Linear"
Gradually increases fees
Predictable escalation
Good for testing limits
Exponential
fee_strategy = "Exponential"
Rapidly increasing fees
For highly competitive situations
Can get expensive quickly
Priority Fee Sources
When helius_key
is configured:
helius_key = "your-api-key"
Uses real-time network fee data
Percentiles based on recent blocks
More accurate pricing
Without Helius:
Learns from parsed transactions
Less accurate but functional
May overpay or underpay
Jito Bundle Strategy
Basic Configuration
jito_levels = [
{
filter_level = 0,
bundle_groups = [1, 2],
process_delay = 400,
min_tip = 1_000, # Minimum Jito tip
max_tip = 10_000, # Maximum Jito tip
min_tip_percentile = 25, # Dynamic tip percentile
max_tip_percentile = 50,
tx_count = 1,
tip_strategy = "Random",
sending_strategy = "AllAtOnce", # Bundle sending method
no_failure_mode = true # Ensure bundle success
}
]
Jito-Specific Settings
no_failure_mode
no_failure_mode = true # All transactions must succeed
no_failure_mode = false # Allow partial failures
true
: Safer but consumes tip alwaysfalse
: Risk of wasted tips
sending_strategy
sending_strategy = "AllAtOnce" # Send complete bundle
sending_strategy = "OneByOne" # Send individually
Dynamic Jito Tips
dynamic_jito_tip_mode = "parsed" # Learn from blockchain
dynamic_jito_tip_mode = "tipstream" # Use tip stream API
dynamic_jito_tip_mode = "none" # Fixed tips only
Parsed Mode
Analyzes successful bundles
Learns optimal tip amounts
Self-adjusting
Tipstream Mode
Real-time tip floor data
Most accurate pricing
Requires API access
Jito Configuration (SMB)
[smb.jito_config]
ips = ["192.168.1.0/24"] # Allowed IP ranges
min_profit = 5_000 # Minimum profit to use Jito
use_min_profit = true # Enforce minimum
use_separate_tip_account = false # Tip account management
Jito Configuration (NotArb)
[notarb]
jito_targets = [
"https://ny.mainnet.block-engine.jito.wtf",
"https://tokyo.mainnet.block-engine.jito.wtf",
"https://amsterdam.mainnet.block-engine.jito.wtf",
]
max_bundle_transactions = 5 # Bundle size limit
Advanced Trading Strategies
Fast Lane Services
fast_levels = [
{
filter_level = 2, # High-value opportunities
bundle_groups = [1],
process_delay = 200,
min_tip = 1_000_000, # Higher tips
max_tip = 2_000_000,
tip_strategy = "Linear",
no_failure_mode = false,
min_cu_price = 50_000,
max_cu_price = 100_000
}
]
[smb.fast_config]
min_profit = 50_000
use_min_profit = true
auth_value = "your-fast-lane-auth"
NextBlock Strategy
nextblock_levels = [
{
filter_level = 2,
bundle_groups = [1],
min_tip = 2_000_000,
max_tip = 5_000_000,
tip_strategy = "Exponential"
}
]
[smb.nextblock_config]
min_profit = 100_000
use_min_profit = true
auth_value = "your-nextblock-auth"
Multi-Strategy Coordination
Cascading Strategies
Configure multiple strategies for different market conditions:
# Tier 0: Normal market - Use spam
spam_levels = [
{ filter_level = 0, bundle_groups = [1, 2], ... }
]
# Tier 1: Competitive - Add Jito
jito_levels = [
{ filter_level = 1, bundle_groups = [3, 4], ... }
]
# Tier 2: High value - Use premium services
fast_levels = [
{ filter_level = 2, bundle_groups = [5], ... }
]
Bundle Group Strategy
Assign different groups to different strategies:
mints_to_arb = [2, 2, 3, 3, 4] # 5 groups
# Groups 1-2: Spam strategy (low value)
# Groups 3-4: Jito bundles (medium value)
# Group 5: Fast lane (high value)
Timing Configuration
Process Delays
process_delay = 400 # Standard delay (ms)
Recommendations:
200-400ms: Aggressive, may fail more
400-600ms: Balanced approach
600-1000ms: Conservative, higher success
Update Intervals
update_interval = 10000 # Config update frequency (ms)
run_interval = 60000 # Minimum time between trades
Balance between:
Fresh data (lower interval)
System resources (higher interval)
Market volatility (adjust accordingly)
Risk Management
Minimum Profit Requirements
Always set minimum profit thresholds:
[smb.jito_config]
min_profit = 10_000 # Only use Jito if profitable
use_min_profit = true
Transaction Limits
Control exposure with transaction counts:
tx_count = 1 # Conservative
tx_count = 3 # Moderate
tx_count = 5 # Aggressive
Compute Unit Limits
Prevent excessive fees:
max_cu_limit = 400_000 # Standard
max_cu_limit = 600_000 # Complex routes
max_cu_limit = 800_000 # Maximum allowed
Strategy Selection Guide
For New Users
Start conservative:
# Single strategy, moderate fees
spam_levels = [{
filter_level = 0,
bundle_groups = [1],
min_cu_price = 5_000,
max_cu_price = 20_000,
tx_count = 1,
fee_strategy = "Random"
}]
For Competitive Markets
Use Jito with dynamic tips:
dynamic_jito_tip_mode = "parsed"
jito_levels = [{
filter_level = 0,
bundle_groups = [1, 2],
min_tip_percentile = 50,
max_tip_percentile = 90,
no_failure_mode = true
}]
For High-Value Opportunities
Combine multiple strategies:
# Use everything available
spam_levels = [{ filter_level = 0, ... }]
jito_levels = [{ filter_level = 1, ... }]
fast_levels = [{ filter_level = 2, ... }]
Performance Optimization
Fee Optimization
Monitor and adjust:
Track success rates by fee level
Find optimal fee ranges
Adjust percentiles based on results
Use Helius for better estimates
Bundle Optimization
For Jito bundles:
Group similar value mints
Keep bundles small (1-3 txs)
Monitor tip efficiency
Adjust based on competition
Latency Optimization
Reduce delays:
Colocate with RPC nodes
Use multiple sending RPCs
Optimize process_delay
Monitor network conditions
Common Issues
High Failure Rate
Symptoms:
Many failed transactions
Wasted fees
Low profitability
Solutions:
Increase process_delay
Raise priority fees
Switch to Jito bundles
Check RPC performance
Overpaying Fees
Symptoms:
High gas costs
Low ROI
Profitable trades become losses
Solutions:
Lower fee percentiles
Use dynamic fee estimation
Set tighter fee ranges
Monitor competitor fees
Missing Opportunities
Symptoms:
Seeing arbs on-chain you didn't catch
Low transaction count
Competitors winning
Solutions:
Reduce process_delay
Increase fee ranges
Add more strategies
Use faster RPCs
Last updated