🚘Circular config

Here's all the supported config for circular. You can also find the api the bot uses here: https://pro.circular.fi/documentation#operation/finder_finder_get

If you are looking for a simple config to get started, you can use this as a starting point: Use Circular integration(Recommended)

# Example configuration demonstrating automatic mint discovery via Circular API

[routing.circular_api]
# Toggle Circular/Finder mint discovery.
enabled = true
refresh_interval_secs = 5

enable_sol_pool = true
enable_usdc_pool = true
enable_usd1_pool = true

# api_key = "" # Optional. When not provided, a 5% fee from your profit will be send to Circular.

# tokensMax β€” max number of mint entries returned (1 - 50, default 10).
max_tokens_list = 5
# tokensTimeRange β€” analysis window in seconds (0 - 86400, default 3600).
max_time_range = 3600
# thresholdMaxTimeRange β€” time window for threshold computation (0 - 86400, default 3600).
threshold_max_time_range = 3600

# tokensMinProfits β€” filter tokens with net profit >= this USD amount (default 0).
min_profit_token = 50
# tokensMaxProfits β€” optional ceiling on net profits (default unbounded).
max_profit_token = 5000
# tokensMinMarketCap / tokensMaxMarketCap β€” restrict market cap (USD).
min_market_cap_token = 0
max_market_cap_token = 10_000_000
# tokensMinVolume / tokensMaxVolume β€” traded volume (USD) limits.
min_volume_token = 0
max_volume_token = 1_000_000
# tokensMinRevenues / tokensMaxRevenues β€” gross gains (USD) limits.
min_revenues_token = 0
max_revenues_token = 1_000_000
# tokensMinTransactions / tokensMaxTransactions β€” transaction count bounds.
min_transactions_token = 10
max_transactions_token = 50_000
# tokensMinLiquidity / tokensMaxLiquidity β€” pool liquidity (USD) bounds.
min_liquidity_token = 0
max_liquidity_token = 1_000_000_000
# tokensMinPool β€” minimum number of pools required per mint (default 2 from API docs).
min_pool_token = 2

# thresholdAmount (legacy Circular) still supported for fallback.
threshold_amount = 1000
# thresholdProvider β€” provider used for threshold recommendation. Enum: FAST|TEMPORAL|JITO|NEXTBLOCK|BLOX|ASTRALANE|FLASHBLOCK|NODEONE|RAZOR|SENDER|STELLIUM|RPC|SMB|ALL.
threshold_provider = "JITO"
# thresholdBot β€” bot family for threshold calculation. Enum: SMB|NOTARB|ALL.
threshold_bot = "SMB"
# thresholdProfits / thresholdRevenues / thresholdTransactions β€” override thresholds (USD / count).
threshold_profits = 500
threshold_revenues = 5000
threshold_transactions = 25

# Percentile settings (fees/tips analysis).
fees_percentiles = "p75"      # percentilesFees β€” e.g. "p50", "p90".
tips_percentiles = "p90"      # percentilesTips β€” e.g. "p50", "p90".
percentiles_provider = "ALL"  # percentilesProvider β€” same enum as threshold provider.
percentiles_bot = "SMB"       # percentilesBot β€” SMB|NOTARB|ALL.
percentiles_time_range = 3600 # percentilesTimeRange β€” seconds window (0 - 86400).

# Optional token inclusion/exclusion.
# exclude_tokens = ["So11111111111111111111111111111111111111112"] # tokensExclude list.
# only_include_tokens = ["So11111111111111111111111111111111111111112"] # tokensInclude list.

# Signer filters (wallets query parameter).
# wallets = ["ExampleWallet111111111111111111111111111111111"]

# AMM filters (tokensAMMS). Each entry should match "amm_address,max_pools" (max 5 pools per AMM).
amm = [
  { address = "LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo", max_pools_list = 4 },
  { address = "cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG", max_pools_list = 2 },
  { address = "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA", max_pools_list = 2 },
  { address = "CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C", max_pools_list = 2 },
  { address = "675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8", max_pools_list = 2 },
]

# Default routing metadata for generated mint configs.
default_process_delay = 400

[bot]
merge_mints = false # This is required for running circular 
skip_ata_creation = true # This is required for running circular 
compute_unit_limit = 400_000

Compute unit price

When using circular api, you can also use the fee returned by circular as your compute unit price in your spam config.

Jito fee

When using circular api, you can also use the jito tip returned by circular as your jito tip in your spam config.

Note: jito tip may not always be available.

Supported dexes

  • Raydium(675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8)

  • Raydium CPMM(CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C)

  • Raydium CLMM(CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK)

  • Pumpfun Swap(pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA)

  • Meteora DLMM(LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo)

  • Meteora Dynamic Pool(Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB)

  • Meteora DAMM V2(cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG)

  • Orca whirlpool(whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc)

  • Solfi(SoLFiHG9TfgtdUXUjWAxi3LtvYuFyDLVhBWxdMZxyCe)

  • Vertigo(vertigoX7VjeihAAVEZ2z2jNqUdRQQP6iMLiHsD5VZLB)

  • Heaven Dex(HEAVENoP2qxoeuF8Dj2oT1GHEnu49U5mJYkdeC8BAX2o)

Circular Fee

When no api key is provided, an additional 5% fee will be charged by Circular. This makes the total fee to run the bot 15%(10% bot fee + 5% circular fee).

Premium Circular user pays a 3.5% fee. 13.5% total.

Pro Circular user pays no fee. only pays 10% bot fee.

To get api key visit Circular website: https://www.circular.bot/plans

Last updated