Mint Selection & Ranking

This section explains how arb-assist selects and ranks tokens (mints) for arbitrage opportunities.

Core Concepts

Mint Groups

Mints are organized into transaction groups for arbitrage:

mints_to_arb = [2, 2, 3]  # 3 groups: 2 mints, 2 mints, 3 mints

This creates:

  • Group 1: 2 mints per transaction

  • Group 2: 2 mints per transaction

  • Group 3: 3 mints per transaction

Ranking System

mints_to_rank = 20  # Keep top 20 mints in ranking

Requirements:

  • mints_to_rank ≥ sum of mints_to_arb

  • Higher values = more opportunities tracked

  • Lower values = less memory usage

Mint Configuration

mints_to_arb

Type: array Required: Yes Description: Number of mints per transaction group

Strategies:

  • [2, 2]: Standard, balanced approach

  • [1, 1, 1]: Isolated trades, safer

  • [3, 4, 5]: Complex routes, higher gas

mints_to_rank

Type: integer Required: Yes Description: Total number of mints to track

Trade-offs:

  • Higher: More opportunities, more memory

  • Lower: Focused approach, less overhead

Sorting Strategies

intermint_sort_strategy

Type: object Required: Yes Description: How to rank mints against each other

Available Metrics

Financial Metrics

profit

  • Raw profit in lamports

  • Best for maximizing returns

  • May favor high-volume tokens

roi (Return on Investment)

  • Efficiency metric

  • Good for limited capital

  • Favors gas-efficient trades

profit_per_arb

  • Consistency metric

  • Identifies reliable opportunities

  • Smooths out outliers

Volume Metrics

total_volume

  • Market activity indicator

  • High volume = more opportunities

  • May include wash trading

net_volume

  • Directional pressure indicator

  • High net = trending token

  • Identifies momentum

turnover

  • Market efficiency metric

  • High turnover = active trading

  • Relative to pool size

Success Metrics

successful_arbs

  • Reliability indicator

  • High count = proven opportunity

  • Ignores profit size

fails

  • Risk indicator

  • Use with ascending sort

  • Identifies problematic mints

Market Metrics

liquidity

  • Depth indicator

  • Higher = less slippage

  • More stable prices

volatility

  • Opportunity indicator

  • Higher = more arbitrage

  • Also higher risk

pool_age

  • Maturity indicator

  • Newer = more volatile

  • Older = more stable

imbalance

  • Direction indicator

  • High = one-sided flow

  • Arbitrage opportunity

pool_sort_strategy

Type: object Required: Yes Description: How to rank pools within each mint

Common strategies:

  • liquidity: Use deepest pools first

  • profit: Most profitable pools first

  • volume: Most active pools first

Filter Thresholds

Multi-tier Filtering

Filter Parameters

min_profit

  • Type: integer (lamports)

  • Minimum cumulative profit

  • 1 SOL = 1_000_000_000 lamports

min_roi

  • Type: float

  • Minimum return on investment

  • Example: 2.0 = 200% return

min_txns

  • Type: integer

  • Minimum successful arbitrages

  • Higher = more proven

min_fails

  • Type: integer

  • Maximum failed transactions

  • Lower = more reliable

min_net_volume

  • Type: integer (lamports)

  • Minimum directional volume

  • Indicates trending tokens

min_total_volume

  • Type: integer (lamports)

  • Minimum trading volume

  • Ensures adequate activity

min_imbalance_ratio

  • Type: float (0.0 - 1.0)

  • Minimum buy/sell imbalance

  • Higher = stronger trend

max_imbalance_ratio

  • Type: float (0.0 - 1.0)

  • Maximum buy/sell imbalance

  • Prevents one-sided markets

min_liquidity

  • Type: integer (lamports)

  • Minimum pool liquidity

  • Ensures adequate depth

min_turnover

  • Type: float

  • Minimum volume/liquidity ratio

  • Indicates trading activity

min_volatility

  • Type: float

  • Minimum price volatility

  • Higher = more opportunities

max_cu_limit

  • Type: integer

  • Maximum compute units

  • Controls transaction complexity

top_pool_num

  • Type: integer (minimum 2)

  • Number of pools to use

  • More pools = more routes

Selection Examples

Conservative Strategy

Aggressive Strategy

Volume-Based Strategy

New Token Strategy

Advanced Configuration

Tiered Mint Selection

Use different groups for different strategies:

Dynamic Adjustment

Combine with half-life decay:

Performance Tuning

Memory Usage

Approximate memory per mint:

  • Basic data: ~1 KB

  • Pool data: ~10 KB per pool

  • History: ~100 KB per mint

Total estimate:

CPU Usage

Processing time factors:

  • Sorting: O(n log n) for n mints

  • Filtering: O(n * m) for m thresholds

  • Updates: Every update_interval ms

Optimization Tips

  1. Reduce mints_to_rank if memory constrained

  2. Increase update_interval if CPU constrained

  3. Simplify sort metrics for faster processing

  4. Use fewer filter tiers for quicker decisions

Troubleshooting

No Mints Selected

Solutions:

  • Lower filter thresholds

  • Check GRPC data stream

  • Verify arbitrage programs

  • Wait for market activity

Poor Quality Mints

If selected mints aren't profitable:

  • Increase min_profit threshold

  • Raise min_roi requirement

  • Require more min_txns

  • Check sort strategy

Missed Opportunities

If missing good trades:

  • Increase mints_to_rank

  • Lower filter thresholds

  • Add more mint groups

  • Reduce update_interval

Last updated