Output File Formats

This reference documents all file formats generated by arb-assist for different bot integrations.

SMB-Onchain Output Files

smb-config.toml

Main configuration file for SolanaMevBot On-Chain.

Structure

[bot]
merge_mints = true
compute_unit_limit = 600000

[[routing.mint_config_list]]
mint = "TokenMintAddress..."
pump_pool_list = ["PoolAddress1...", "PoolAddress2..."]
raydium_clmm_pool_list = ["PoolAddress3..."]
meteora_dlmm_pool_list = ["PoolAddress4..."]
orca_whirlpool_list = ["PoolAddress5..."]
lookup_table_accounts = ["ALUT1...", "ALUT2..."]
process_delay = 400

[rpc]
url = "https://rpc.endpoint.com"

[spam]
enabled = true
sending_rpc_urls = [
    "https://rpc1.com",
    "https://rpc2.com",
    "https://rpc3.com"
]
compute_unit_price = {
    strategy = "Random",
    from = 10000,
    to = 50000,
    count = 1
}
max_retries = 10

[jito]
enabled = true
block_engines = ["ny", "tokyo", "amsterdam"]
tip = {
    strategy = "Random",
    from = 5000,
    to = 20000,
    count = 1
}

[flashloan]
enabled = true

[wallet]
# Keypair configuration handled by SMB

Field Descriptions

[bot] Section

  • merge_mints: Allow combining multiple mints in one transaction

  • compute_unit_limit: Maximum compute units per transaction

[[routing.mint_config_list]] Array

  • mint: Token mint address to arbitrage

  • *_pool_list: Arrays of pool addresses by DEX type

  • lookup_table_accounts: Address lookup tables for this mint

  • process_delay: Milliseconds to wait between attempts

[rpc] Section

  • url: Primary RPC endpoint

[spam] Section

  • enabled: Whether to use spam mode

  • sending_rpc_urls: RPC endpoints for sending transactions

  • compute_unit_price: Priority fee configuration

    • strategy: "Random", "Linear", or "Exponential"

    • from/to: Fee range in microlamports

    • count: Number of different fees to try

  • max_retries: Maximum retry attempts

[jito] Section

  • enabled: Whether to use Jito bundles

  • block_engines: Regions to submit bundles

  • tip: Jito tip configuration

    • Same structure as compute_unit_price

[flashloan] Section

  • enabled: Whether to use flash loans

NotArb Output Files

notarb-config.toml

Main configuration file for NotArb onchain-bot.

Structure

Field Descriptions

  • jvm_args: JVM optimization parameters

  • keypair_path: Path to wallet keypair (supports env vars)

  • protect_keypair: Use NotArb's keypair protection

  • threads: Thread pool size (0 = dynamic)

  • flash_loan: Enable flash loan usage

  • max_lookup_tables: Maximum ALUTs per transaction

  • meteora_bin_limit: Max bins for Meteora DLMM

  • ips_file_path: Path to proxy IP list

  • prefunded_keypairs_path: Path to prefunded keypairs

  • jito_targets: Jito bundle submission endpoints

  • max_bundle_transactions: Max transactions per bundle

  • Connection configurations: Separate RPC endpoints for different tasks

markets.json

Trading pairs organized by transaction groups.

Structure

Field Descriptions

  • groups: 2D array of market addresses

    • Each sub-array represents a transaction group

    • Corresponds to mints_to_arb configuration

  • update_timestamp: Unix timestamp of last update

lookup-tables.json

Address lookup tables for transaction size optimization.

Structure

Simple array of ALUT addresses, sorted by usage frequency.

notarb-attributes.json

Dynamic trading parameters updated based on market conditions.

Structure

Field Descriptions

  • cu_limit: Compute unit limit for transactions

  • jito_cooldown: Milliseconds between Jito attempts

  • jito_enabled: Whether to use Jito bundles

  • jito_min_tip/jito_max_tip: Jito tip range in lamports

  • spam_cooldown: Milliseconds between spam attempts

  • spam_enabled: Whether to use spam mode

  • spam_min_fee/spam_max_fee: Priority fee range in microlamports

File Update Behavior

Update Frequency

All files update according to update_interval in config.toml:

Atomic Updates

Files are written atomically:

  1. Write to temporary file

  2. Validate contents

  3. Rename to final filename

  4. Old file is replaced

File Permissions

Generated files have permissions:

  • Owner: Read/Write (644)

  • Group: Read

  • Others: Read

File Locations

Files are created in the current working directory:

Dummy Configurations

When no mints meet filter criteria, dummy configs are generated:

SMB Dummy Config

NotArb Dummy Markets

Custom Output Names

Configure custom output filenames:

Results in:

  • my-custom-name.toml (SMB mode)

  • my-custom-name.json (NotArb mode)

File Server Endpoints

When file server is enabled (port > 0), files are available via HTTP:

Mode
URL Path
Content-Type

SMB

/smb-config.toml

text/plain

NotArb

/notarb-config.toml

text/plain

NotArb

/markets.json

application/json

NotArb

/lookup-tables.json

application/json

NotArb

/notarb-attributes.json

application/json

Example URLs:

Version Compatibility

SMB Compatibility

  • Version 0.11.5+: Full support

  • Older versions: Not supported

NotArb Compatibility

  • Latest GitHub release: Full support

  • Older versions: Check changelog

Validation

SMB Validation

  • TOML syntax must be valid

  • All pool addresses must be valid base58

  • Mint addresses must be valid SPL tokens

  • Compute limits within Solana bounds

NotArb Validation

  • JSON syntax must be valid

  • Market addresses must be valid

  • All numeric values within expected ranges

  • Required fields present

Error Handling

Malformed Output

If output generation fails:

  1. Previous valid config retained

  2. Error logged

  3. Retry on next interval

Partial Updates

If some data unavailable:

  1. Use cached values

  2. Generate partial config

  3. Log missing data

Best Practices

  1. Monitor File Updates: Check timestamps to ensure fresh data

  2. Validate Before Use: Bot should validate config before trading

  3. Keep Backups: Maintain last known good configuration

  4. Watch File Sizes: Large configs may indicate issues

  5. Check Dummy Values: Presence indicates no opportunities found

Last updated