> For the complete documentation index, see [llms.txt](https://arbsolana.gitbook.io/arb-protocol/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://arbsolana.gitbook.io/arb-protocol/references/v2-config.md).

# V2 Config

This page details the specs for the `config.json` file for the v2 bot. Learn more [here](/arb-protocol/arbitrage-bot/setup.md).

### Example config: <a href="#example-config" id="example-config"></a>

```
{
  "meta": {
    "price_fetch_delay": 0,
    "after_order_delay": 0,
    "simulate": false,
    "jito_tip_percent": 50,
    "max_jito_tip_lamports": 5000000,
    "slippage": {
      "mode": "exact",
      "bps": 2500,
      "inner_bps": 500
    },
    "wrap_mode": "all"
  },
  "tokens": [
    {
      "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "name": "USDC",
      "send_mode": "both",
      "decimals": 6,
      "max_accounts": 25,
      "sizes": [
        {
          "min_amt": 400,
          "max_amt": 400,
          "trade_size_decimals": 0,
          "min_profit_onchain": 0,
          "min_profit_to_send": 3
        }
      ],
      "prio_fee": 30000,
      "cu_limit": 250000
    }
  ],
  "mids": {
        "top_amt": 0 ,
        "prune_percentage": -50,
        "prune_readd_amt": 2,
        "custom": [
            {
              "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
              "name": "USDC",
              "decimals": 6
            },
            {
              "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
              "name": "USDT",
              "decimals": 6
            },
            {
              "mint": "3psH1Mj1f7yUfaD5gh6Zj7epE8hhrMkMETgv5TshQA4o",
              "name": "boden",
              "decimals": 9
            }
        ]
    }
}
```

### Fields <a href="#fields" id="fields"></a>

* `meta` (object): Meta settings for the bot.
  * `price_fetch_delay` (number): Delay between price fetches in milliseconds.
  * `after_order_delay` (number): Delay after an order is placed in milliseconds.
  * `simulate` (boolean): Whether to simulate trades.
  * `slippage` (object): Slippage settings.
    * `mode` (string): Slippage mode (One of “exact” or “profitbps” - exact is an exact slippage, where profitbps is a bps amount of the pair’s profit, ex: 50bps of a profit of 10USDC would be 0.05 USDC slippage).
    * `bps` (number): Base slippage in basis points.
    * `inner_bps` (number): Inner slippage in basis points - used in requests when fetching quotes.
  * `jito_tip_percent` (object): The amount of profit to tip as a percentage to Jito (only when using them, of course).
  * `max_jito_tip_lamports` (number): The maximum amount of lamports to tip Jito. If the tip is higher than this, it will be capped at this amount.
  * `wrap_mode` (string): Wrap mode (One of “all” or “none” - all wraps and unwraps your SOL, and none does not wrap or unwrap, using pre-wrapped WSOL).
* `tokens` (array): Array of token setting objects.
  * `enable` (boolean, optional): Whether to enable the token. Defaults to true.
  * `mint` (string): Mint address of the token.
  * `send_mode` (string): One of “rpc”, “jito”, “both”.
  * `name` (string): Name of the token.
  * `decimals` (number): Decimals of the token.
  * `max_accounts` (number): Max accounts to trade with on each side of the ARB. 25 is recommended, as Solana has a max accounts per tx limit of 60 - 25\*2=50 - leaving 10 accounts of slack for the profit checker, etc.
  * `sizes` (array): Array of size objects.
    * `min_amt` (number): Minimum amount to trade.
    * `max_amt` (number): Maximum amount to trade.
    * `trade_size_decimals` (number): Decimals of the trade size (ex: min 1, max 2, decimals 1: 1, 1.1, 1.2 … 1.9, 2. decimals 2: 1, 1.01, 1.02 … 1.99, 2. etc…)
    * `min_profit_onchain` (number, optional): Minimum **BPS ONLY** profit to trade on-chain. This reverts trades that do not make *enough* profit on-chain. Set this to 0 or do not specify it to disable, and take any profit (Recommended!).
    * `min_profit_to_send` (number): Minimum profit to send. Use a whole number value for BPS, and a decimal value for token amounts (ex: 3 for 3bps minimum, 0.1 for 0.1 tokens).
  * `prio_fee` (number): Priority fee in lamports.
  * `cu_limit` (number): Compute unit limit on the transaction.
* `mids` (object): Configuration for the mids (token B in the A -> B -> A system)
  * `top_amt` (number): DEPRECATED!!! Set to 0. Will be removed next update.
  * `prune_percentage` (number): Any route that quotes a loss of more than this percentage gets pruned.
  * `prune_readd_amt` (number): Every “cycle” (1/(route count \* 2) chance every route check), these many pruned routes get added back into the mix
  * `custom` (array): Array of custom token mids, deduped with the ones added by to\_amt - recommended to put high volatility tokens you know of with multiple pools&#x20;
    * `mint` (string): Mint address of the token.
    * `name` (string): Name of the token.
    * `decimals` (number): Decimals of the token.
