SolanaMevBot
  • 🤖SolanaMevBot - Solana Arbitrage Bot
    • 📘Blog
      • The Current Landscape of MEV on Solana
      • How to Frontrun on Solana: A Step-by-Step Guide
    • đŸ’ĩFees
  • Onchain Bot
    • â„šī¸How this bot work
    • đŸ› ī¸Getting started
    • â›“ī¸Onchain program
    • 🔍Address lookup table
    • 📝Bot configurations
  • 🚀Releases
  • â€ŧī¸Trouble shooting
  • 💹Performance tuning
  • Onchain Bot Dashboard
  • Jupiter Bot
    • â„šī¸How this bot work
    • đŸ› ī¸Getting started
    • 📝Bot configurations
      • 📚Config examples
    • 🔡Common workflow
    • 💹Performance tuning
    • 🧩Bot Strategy
    • â€ŧī¸Trouble shooting
    • 🚀Releases
    • ❓FAQ
    • Dashboard
  • Community
    • Discord
Powered by GitBook
On this page
  1. Jupiter Bot
  2. Bot configurations

Config examples

PreviousBot configurationsNextCommon workflow

Last updated 2 months ago

If you are a new user, use the Demo account config here. DO NOT USE ANY OTHER ONES.

Demo account config The is using a Jito only strategy. With this strategy you won't land any failed transaction, and can work well with just one RPC. It purely uses RPC and gRPC(Yellowstone) from

The demo account is using a teraswitch machine(8 Core/32GB) in Amsterdam($150/m).

To run this config you need at least ~0.2 sol in your wallet.

Fill in the following field in the config.yaml file(YELLOWSTONE is optional but recommended)

KEYS:
  PRIVATE_KEY:
YELLOWSTONE:
  YELLOWSTONE_URL:
  YELLOWSTONE_XTOKEN: 
BOT:
  RPC_URL: 

Full config.yaml

KEYS:
  PRIVATE_KEY:
YELLOWSTONE:
  YELLOWSTONE_URL:
  YELLOWSTONE_XTOKEN: 
JUPITER:
  JUPITER_URL: http://127.0.0.1:18080
  JUP_MAX_ACCOUNTS: 20
  LOCAL_JUPITER_PORT: 18080
  USE_DIRECT_ROUTE_ONLY: true
  EXCLUDED_DEXES:
    - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
    - MoonCVVNZFSYkqNXP6bxHLPL6QQJiMagDL3qcqUQTrG
INTERMEDIUM_MINTS:
  INTERMEDIUM_MINT_LIST:
    - EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
BOT:
  RPC_URL: 
  AUTO_RESTART: 30
  MAX_COMPUTE_TIME: 500
  ENABLE_SIMULATION: false
  PAY_FEE_WITH_PROFIT: true
JITO:
  ENABLE_JITO: true
  TIP_STRATEGIES:
    - dynamic
    - fixed
  FIXED_TIP: 50_000
  MAX_TIP: 1_000_000_000
  DYNAMIC_TIP_BP: 9000
  USE_DIFFERENT_TX_FOR_BLOCK_ENGINES: true
  BLOCK_ENGINES:
    - ny
    - amsterdam
    - frankfurt
    - tokyo
    - slc
BLIND_QUOTE_STRATEGY:
  ENABLE_BLIND_QUOTE_STRATEGY: true
  BASE_MINTS:
    - MINT: So11111111111111111111111111111111111111112
      SKIP_PROFIT_CHECK_FOR_QUOTE: true
      TRADE_SIZES:
        - 100_000_000
      PROCESS_DELAY: 1000

Copy trade config The is using this config. This is a Jito config that copy the top players' mints and trying to find arb on them. This is just an example and is not a fully tuned config. You may need to adjust based on your setups.

is a good place to find the current best player.

Fill in the following field in the config.yaml file(YELLOWSTONE is optional but recommended)

KEYS:
  PRIVATE_KEY:
YELLOWSTONE:
  YELLOWSTONE_URL:
  YELLOWSTONE_XTOKEN: 
BOT:
  RPC_URL: 

Full config.yaml

KEYS:
  PRIVATE_KEY: ''
YELLOWSTONE:
  YELLOWSTONE_URL: ''
  YELLOWSTONE_XTOKEN: ''
JUPITER:
  JUPITER_RPC_URL: ''
  MARKET_MODE: remote
  DISABLE_LOCAL_JUPITER: false
  JUPITER_URL: http://0.0.0.0:18080
  JUP_MAX_ACCOUNTS: 20
  LOCAL_JUPITER_PORT: 18080
  USE_DIRECT_ROUTE_ONLY: true
  EXCLUDED_DEXES:
    - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
    - MoonCVVNZFSYkqNXP6bxHLPL6QQJiMagDL3qcqUQTrG
INTERMEDIUM_MINTS:
  INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE: 0
  INTERMEDIUM_MINT_COUNT_FROM_GECKO: 0
  INTERMEDIUM_MINT_FROM_FILE: ''
  INTERMEDIUM_MINT_EXCLUDE_FROM_FILE: 'exclude-mints.json'
  INTERMEDIUM_MINT_FROM_ADDRESSES:
    MAX_MINT_COUNT: 20
    ADDRESSES:
      - ADDRESS: 55NQkFDwwW8noThkL9Rd5ngbgUU36fYZeos1k5ZwjGdn
        TX_COUNT_PER_ADDRESS: 20 # Number of latest transactions to check on start
        SUCCESSFUL_ONLY: true # Only consider successful transactions
      - ADDRESS: GuiU6MpLahPHSHYcsfSRjwLUm1AtZ9zP2eiLAkJMBjg
        TX_COUNT_PER_ADDRESS: 20 # Number of latest transactions to check on start
        SUCCESSFUL_ONLY: true # Only consider successful transactions
      - ADDRESS: 54EiavhVatcFbcRHKm2swd6eB8reyib3kTkDGScoGjGK
        TX_COUNT_PER_ADDRESS: 20 # Number of latest transactions to check on start
        SUCCESSFUL_ONLY: true # Only consider successful transactions
BOT:
  RPC_URL: ''
  AUTO_RESTART: 30
  MIN_SOL_BALANCE: 10_000_000_000
  MAX_COMPUTE_TIME: 500
  ENABLE_SIMULATION: false
SPAM:
  ENABLE_SPAM: false
JITO:
  ENABLE_JITO: true
  SHOW_JITO_LOGS: false
  JITO_UUID: ''
  ENABLE_JITO_RPC: false
  TIP_STRATEGIES:
    - dynamic
    - static
  DYNAMIC_TIP_BP: 8655
  STATIC_TIP_BP: 8655

BLIND_QUOTE_STRATEGY:
  ENABLE_BLIND_QUOTE_STRATEGY: true
  BASE_MINTS:
    - MINT: So11111111111111111111111111111111111111112
      MIN_QUOTE_PROFIT: 500_000
      TRADE_RANGE:
        FROM: 2_000_000_000
        TO: 10_000_000_000
      TRADE_RANGE_COUNT: 3
      TRADE_RANGE_STRATEGY: random
      PROCESS_DELAY: 100
    - MINT: So11111111111111111111111111111111111111112
      MIN_QUOTE_PROFIT: 500_000
      TRADE_RANGE:
        FROM: 10_000_000_000
        TO: 50_000_000_000
      TRADE_RANGE_COUNT: 3
      TRADE_RANGE_STRATEGY: random
      PROCESS_DELAY: 100

exclude-mints.json

[
    "So11111111111111111111111111111111111111112",
    "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"
]
bloXroute config This is a mixed strategy using both jito and bloXroute.

The machines runs this is using the following hardware: CPU AMD Ryzen 9 7950X Cores/Threads 16c / 32t Memory (RAM) 128 GB And located in Amsterdam, the same location as Shyft RPC and Yellowstone.

Fill in the following field in the config.yaml file(YELLOWSTONE is optional but recommended)

KEYS:
  PRIVATE_KEY:
YELLOWSTONE:
  YELLOWSTONE_URL:
  YELLOWSTONE_XTOKEN: 
BOT:
  RPC_URL: 

config.yaml

KEYS:
  PRIVATE_KEY: 
YELLOWSTONE:
  YELLOWSTONE_URL: 
  YELLOWSTONE_XTOKEN: 
JUPITER:
  MARKET_MODE: remote
  JUPITER_URL: http://0.0.0.0:18080
  JUP_MAX_ACCOUNTS: 20
  LOCAL_JUPITER_PORT: 18080
  USE_DIRECT_ROUTE_ONLY: true
  EXCLUDED_DEXES:
    - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
    - MoonCVVNZFSYkqNXP6bxHLPL6QQJiMagDL3qcqUQTrG
INTERMEDIUM_MINTS:
  INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE: 100
BOT:
  RPC_URL: 
  AUTO_RESTART: 120
  MAX_COMPUTE_TIME: 400
  MIN_SOL_BALANCE: 1_000_000_000
  WRAP_SOL_AMOUNT: 100_000_000
  ENABLE_SIMULATION: false
  PULL_BLOCKHASH_WITH_YELLOWSTONE: false
SPAM:
  ENABLE_SPAM: true
  SPAM_RESTRICT_LEVEL: 0
  SKIP_PREFLIGHT: true
  USE_DIFFERENT_TX_FOR_SENDERS: false
  FIXED_COMPUTE_UNIT_LIMIT: 0
  MAX_RETRIES: 0
  SEND_RPC_URLS: []
  
  PRIORITY_FEE_STRATEGY: fixed
  COMPUTE_UNIT_PRICE: 100_000
  
  BLOXROUTE:
    ENABLE_BLOXROUTE: true
    BLOXROUTE_REGION: 'ny'

JITO:
  ENABLE_JITO: true
  SHOW_JITO_LOGS: false
  TIP_STRATEGIES:
    - dynamic
    - static
  DYNAMIC_TIP_BP: 8222
  STATIC_TIP_BP: 8222
  USE_SEPARATE_TIP_ACCOUNT: false
  USE_DIFFERENT_TX_FOR_BLOCK_ENGINES: true
  BLOCK_ENGINES:
    - ny
    - amsterdam
    - frankfurt
    - tokyo
    - slc

BLIND_QUOTE_STRATEGY:
  ENABLE_BLIND_QUOTE_STRATEGY: true
  BASE_MINTS:
    - MINT: So11111111111111111111111111111111111111112
      MIN_QUOTE_PROFIT: 1_000_000
      TRADE_RANGE:
        FROM: 1_000_000_000
        TO: 10_000_000_000
      TRADE_RANGE_COUNT: 5
      TRADE_RANGE_STRATEGY: random
      PROCESS_DELAY: 1000
Spam config This is an example config for how to use spam strategy. Note you need multiple good RPCs for sending, minimize all possible latencies, and tune it yourself to be profitable with spam strategy. Not everyone can be profitable with spam strategy.

Fill in the following field in the config.yaml file(YELLOWSTONE is optional but recommended)

KEYS:
  PRIVATE_KEY:
YELLOWSTONE:
  YELLOWSTONE_URL:
  YELLOWSTONE_XTOKEN: 
BOT:
  RPC_URL: 
SPAM:
  SEND_RPC_URLS:   

config.yaml

KEYS:
  PRIVATE_KEY: ''
YELLOWSTONE:
  YELLOWSTONE_URL: ''
  YELLOWSTONE_XTOKEN: ''
JUPITER:
  MARKET_MODE: remote
  DISABLE_LOCAL_JUPITER: false
  JUPITER_URL: http://0.0.0.0:18080
  JUP_MAX_ACCOUNTS: 20
  LOCAL_JUPITER_PORT: 18080
  USE_DIRECT_ROUTE_ONLY: true
  USE_LOCAL_MARKET_CACHE: false
  EXCLUDED_DEXES:
    - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
    - MoonCVVNZFSYkqNXP6bxHLPL6QQJiMagDL3qcqUQTrG
INTERMEDIUM_MINTS:
  INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE: 500
BOT:
  RPC_URL: ''
  AUTO_RESTART: 60
  MAX_COMPUTE_TIME: 400
  ENABLE_SIMULATION: true
SPAM:
  ENABLE_SPAM: true
  SPAM_RESTRICT_LEVEL: 0
  SKIP_PREFLIGHT: true
  USE_DIFFERENT_TX_FOR_SENDERS: false
  FIXED_COMPUTE_UNIT_LIMIT: 250000
  COMPUTE_UNIT_PRICE: 10001
  PRIORITY_FEE_UPDATE_INTERVAL: 60
  MAX_RETRIES: 0
  SEND_RPC_URLS: []
  
BLIND_QUOTE_STRATEGY:
  ENABLE_BLIND_QUOTE_STRATEGY: true
  SKIP_SAME_OPPORTUNITY: true
  BASE_MINTS:
    - MINT: So11111111111111111111111111111111111111112
      MIN_QUOTE_PROFIT: 500_000
      TRADE_RANGE:
        FROM: 1_000_000_000
        TO: 10_000_000_000
      TRADE_RANGE_COUNT: 10
      TRADE_RANGE_STRATEGY: linear
      PROCESS_DELAY: 500
    - MINT: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
      MIN_QUOTE_PROFIT: 500_000
      TRADE_RANGE:
        FROM: 100_000_000
        TO: 500_000_000
      TRADE_RANGE_COUNT: 5
      TRADE_RANGE_STRATEGY: linear
      PROCESS_DELAY: 500
Super spam config It's using helius and read RPC and helius + quickndoe as send rpcs. This is an example config on how to use super spam strategy. Note you need multiple good RPCs for sending, minimize all possible latencies, and always have an eye on the market for the hottest mint. See for more details about this config. The intermedium-mints.json will be updated very frequently so the mints here is likely not the one the bot is using right now. *The Spam account is not always active, I periodically turn it off when the market condition is not good for the config.

Fill in the following field in the config.yaml file(YELLOWSTONE is optional but recommended)

KEYS:
  PRIVATE_KEY:
YELLOWSTONE:
  YELLOWSTONE_URL:
  YELLOWSTONE_XTOKEN: 
BOT:
  RPC_URL: 
SPAM:
  SEND_RPC_URLS:  

config.yaml

You can also use with this strategy if you don't have enough fund.

KEYS:
  PRIVATE_KEY: ''
YELLOWSTONE:
  YELLOWSTONE_URL: ''
  YELLOWSTONE_XTOKEN: ''
JUPITER:
  MARKET_MODE: remote
  DISABLE_LOCAL_JUPITER: false
  JUPITER_URL: http://0.0.0.0:18080
  JUP_MAX_ACCOUNTS: 20
  LOCAL_JUPITER_PORT: 18080
  USE_DIRECT_ROUTE_ONLY: true
  USE_LOCAL_MARKET_CACHE: false
  EXCLUDED_DEXES:
    - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
    - MoonCVVNZFSYkqNXP6bxHLPL6QQJiMagDL3qcqUQTrG
INTERMEDIUM_MINTS:
  INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE: 0
  INTERMEDIUM_MINT_COUNT_FROM_GECKO: 0
  INTERMEDIUM_MINT_FROM_FILE: intermedium-mints.json
BOT:
  RPC_URL: ''
  AUTO_RESTART: 60
  MAX_COMPUTE_TIME: 400
  ENABLE_SIMULATION: false
  PULL_BLOCKHASH_WITH_YELLOWSTONE: false
SPAM:
  ENABLE_SPAM: true
  SPAM_RESTRICT_LEVEL: 0
  SKIP_PREFLIGHT: true
  USE_DIFFERENT_TX_FOR_SENDERS: true
  FIXED_COMPUTE_UNIT_LIMIT: 280000
  COMPUTE_UNIT_PRICE: 250000
  PRIORITY_FEE_UPDATE_INTERVAL: 60
  MAX_RETRIES: 0
  SEND_RPC_URLS: []
JITO:
  ENABLE_JITO: false
  
BLIND_QUOTE_STRATEGY:
  ENABLE_BLIND_QUOTE_STRATEGY: true
  BASE_MINTS:
    - MINT: So11111111111111111111111111111111111111112
      SKIP_PROFIT_CHECK_FOR_QUOTE: true
      TRADE_RANGE:
        FROM: 1_000_000_000
        TO: 40_000_000_000
      TRADE_RANGE_COUNT: 2
      TRADE_RANGE_STRATEGY: random
      PROCESS_DELAY: 100

intermedium-mints.json

You want to put the current hottest mint with lots of volume and velocity here. This is just an example.

[
  "CTJf74cTo3cw8acFP1YXF3QpsQUUBGBjh2k2e8xsZ6UL"
]

High fee backrun config This strategy use a very high gas fee and is sending much less tx than a traditional spam strategy. The goal is to pay a high enough gas fee in order to land fast and catch the opportunity right after it appears. This strategy has the highest requirement for your rpc and server, you want to has as little latency as possible as it may cost you a lot for a fail transaction. This exact config captured the

config.yaml

KEYS:
  PRIVATE_KEY: your-private-key # Your private key
  HELIUS_API_KEY: ''

YELLOWSTONE:
  YELLOWSTONE_URL: http://your-yellowstone-url # Your yellowstone url
  YELLOWSTONE_XTOKEN: your-yellowstone-x-token # Your yellowstone x token
  PULL_BLOCKHASH_WITH_YELLOWSTONE: true

JUPITER:
  JUPITER_RPC_URL: ''
  MARKET_MODE: remote
  DISABLE_LOCAL_JUPITER: false
  JUPITER_URL: http://0.0.0.0:18080
  JUP_MAX_ACCOUNTS: 25
  LOCAL_JUPITER_PORT: 18080
  USE_DIRECT_ROUTE_ONLY: true
  USE_LOCAL_MARKET_CACHE: false
  EXCLUDED_DEXES:
    - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
    - MoonCVVNZFSYkqNXP6bxHLPL6QQJiMagDL3qcqUQTrG

INTERMEDIUM_MINTS:
  INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE: 500
  INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE_TRENDING: 200
  INTERMEDIUM_MINT_COUNT_FROM_GECKO: 20

BOT:
  ENABLE_JITO_RPC: true
  RPC_URL: http://your-rpc-url # Your rpc url
  AUTO_RESTART: 60
  MAX_COMPUTE_TIME: 30
  ENABLE_SIMULATION: true
  PAY_FEE_WITH_PROFIT: true

SPAM:
  ENABLE_SPAM: true
  PRIORITY_FEE_STRATEGY: profit-based
  SPAM_RESTRICT_LEVEL: 5
  SKIP_PREFLIGHT: true
  USE_DIFFERENT_TX_FOR_SENDERS: false
  FIXED_COMPUTE_UNIT_LIMIT: 0
  SPAM_FEE_BPS: 100
  MAX_COMPUTE_UNIT_PRICE: 2_000_000_000
  MAX_RETRIES: 0
  SEND_RPC_URLS:
    - http://your-rpc-url # Your rpc url
  BLOXROUTE:
    ENABLE_BLOXROUTE: false
    BLOXROUTE_REGION: uk
    BLOXROUTE_FEE: 500_000

JITO:
  ENABLE_JITO: true
  SHOW_JITO_LOGS: false
  JITO_UUID: ''
  TIP_STRATEGIES:
    - dynamic
  DYNAMIC_TIP_BP: 9501
  USE_SEPARATE_TIP_ACCOUNT: false
  USE_DIFFERENT_TIP_ACCOUNT_FOR_BLOCK_ENGINES: true
  USE_DIFFERENT_TX_FOR_BLOCK_ENGINES: true
  BLOCK_ENGINES:
    - ny
    - amsterdam
    - frankfurt
    - tokyo
    - slc

LOGGING:
  DEBUG: false
  HIDE_ERROR: false
  ENABLE_LANDING_LOG: false
  ENABLE_SENDING_LOG: false

BACKRUN_STRATEGY:
  ENABLE_BACKRUN_STRATEGY: true
  SLOT_MEMO: true
  DEXES_TO_MONITOR:
    - Raydium
    - Whirlpool
    - RaydiumCLMM
    - Meteora
    - MeteoraDLMM
  MIN_PRICE_IMPACT_PCT: 0.1
  BASE_MINTS:
    - MINT: So11111111111111111111111111111111111111112
      MIN_SIMULATED_PROFIT: 200_000
      SKIP_PROFIT_CHECK_FOR_QUOTE: true
      MIN_TRADE_SIZE: 500_000_000
      MAX_TRADE_SIZE: 150_000_000_000
      TRADE_CONFIGS:
        - MIN_TRADE_BP: 2000
          MAX_TRADE_BP: 2000
      ROUTE_TYPES:
        - 2hop
📝
📚
82 SOL arb
demo account
Shyft.to
Spam account
https://www.circular.bot/trends
Super spam strategy with only 1 or 2 mints
flashloan