📚Config examples

Demo account config The demo account 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 Shyft.to

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

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

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

Full config.yaml

KEYS:
  PRIVATE_KEY:
  BIRDEYE_API_KEY: 
YELLOWSTONE:
  YELLOWSTONE_URL:
  YELLOWSTONE_XTOKEN: 
JUPITER:
  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: 50
BOT:
  RPC_URL: 
  AUTO_RESTART: 30
  PROCESS_DELAY: 500
  MAX_COMPUTE_TIME: 500
  MIN_SOL_BALANCE: 1_000_000_000
  ENABLE_SIMULATION: false
  PULL_BLOCKHASH_WITH_YELLOWSTONE: false
JITO:
  ENABLE_JITO: true
  TIP_STRATEGIES:
    - dynamic
    - static
  DYNAMIC_TIP_BP: 9000
  STATIC_TIP_BP: 9000
  USE_DIFFERENT_TX_FOR_BLOCK_ENGINES: true
  BLOCK_ENGINES:
    - ny
    - amsterdam
    - frankfurt
    - tokyo
    - slc
BASE_MINTS:
  - MINT: So11111111111111111111111111111111111111112
    MIN_PROFIT: 5_000
    TRADE_RANGE:
      FROM: 100_000_000
      TO: 2_000_000_000
    TRADE_RANGE_COUNT: 5
    TRADE_RANGE_STRATEGY: linear
  # You can remove the following section if you don't want to use USDC as base
  - MINT: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
    MIN_PROFIT: 5_000
    TRADE_RANGE:
      FROM: 50_000_000
      TO: 500_000_000
    TRADE_RANGE_COUNT: 5
    TRADE_RANGE_STRATEGY: linear

Copy trade config The Spam account 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.

https://www.circular.bot/trends 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:
  BIRDEYE_API_KEY: 
YELLOWSTONE:
  YELLOWSTONE_URL:
  YELLOWSTONE_XTOKEN: 
BOT:
  RPC_URL: 

Full config.yaml

KEYS:
  PRIVATE_KEY: ''
  BIRDEYE_API_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
  PROCESS_DELAY: 100
  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
BASE_MINTS:
  - MINT: So11111111111111111111111111111111111111112
    MIN_PROFIT: 500_000
    TRADE_RANGE:
      FROM: 2_000_000_000
      TO: 10_000_000_000
    TRADE_RANGE_COUNT: 3
    TRADE_RANGE_STRATEGY: random
  - MINT: So11111111111111111111111111111111111111112
    MIN_PROFIT: 500_000
    TRADE_RANGE:
      FROM: 10_000_000_000
      TO: 50_000_000_000
    TRADE_RANGE_COUNT: 3
    TRADE_RANGE_STRATEGY: random

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:
  BIRDEYE_API_KEY: 
YELLOWSTONE:
  YELLOWSTONE_URL:
  YELLOWSTONE_XTOKEN: 
BOT:
  RPC_URL: 

config.yaml

KEYS:
  PRIVATE_KEY: 
  BIRDEYE_API_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
  PROCESS_DELAY: 1000
  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
  SKIP_SAME_OPPORTUNITY: false
  FIXED_COMPUTE_UNIT_LIMIT: 0
  COMPUTE_UNIT_PRICE: 100_000
  PRIORITY_FEE_UPDATE_INTERVAL: 60
  MAX_RETRIES: 0
  SEND_RPC_URLS: []
  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

BASE_MINTS:
  - MINT: So11111111111111111111111111111111111111112
    MIN_PROFIT: 1_000_000
    TRADE_RANGE:
      FROM: 1_000_000_000
      TO: 10_000_000_000
    TRADE_RANGE_COUNT: 5
    TRADE_RANGE_STRATEGY: random
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:
  BIRDEYE_API_KEY: 
YELLOWSTONE:
  YELLOWSTONE_URL:
  YELLOWSTONE_XTOKEN: 
BOT:
  RPC_URL: 
SPAM:
  SEND_RPC_URLS:   

config.yaml

KEYS:
  PRIVATE_KEY: ''
  BIRDEYE_API_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
  PROCESS_DELAY: 500
  MAX_COMPUTE_TIME: 400
  ENABLE_SIMULATION: true
SPAM:
  ENABLE_SPAM: true
  SPAM_RESTRICT_LEVEL: 0
  SKIP_PREFLIGHT: true
  USE_DIFFERENT_TX_FOR_SENDERS: false
  SKIP_SAME_OPPORTUNITY: false
  FIXED_COMPUTE_UNIT_LIMIT: 250000
  COMPUTE_UNIT_PRICE: 10001
  PRIORITY_FEE_UPDATE_INTERVAL: 60
  MAX_RETRIES: 0
  SEND_RPC_URLS: []
BASE_MINTS:
  - MINT: So11111111111111111111111111111111111111112
    MIN_PROFIT: 500_000
    TRADE_RANGE:
      FROM: 1_000_000_000
      TO: 10_000_000_000
    TRADE_RANGE_COUNT: 10
    TRADE_RANGE_STRATEGY: linear
  - MINT: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
    MIN_PROFIT: 500_000
    TRADE_RANGE:
      FROM: 100_000_000
      TO: 500_000_000
    TRADE_RANGE_COUNT: 5
    TRADE_RANGE_STRATEGY: linear
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 Super spam strategy with only 1 or 2 mints 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:
  BIRDEYE_API_KEY: 
YELLOWSTONE:
  YELLOWSTONE_URL:
  YELLOWSTONE_XTOKEN: 
BOT:
  RPC_URL: 
SPAM:
  SEND_RPC_URLS:  

config.yaml

You can also use flashloan 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
  PROCESS_DELAY: 100
  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
  SKIP_SAME_OPPORTUNITY: false
  FIXED_COMPUTE_UNIT_LIMIT: 280000
  COMPUTE_UNIT_PRICE: 250000
  PRIORITY_FEE_UPDATE_INTERVAL: 60
  MAX_RETRIES: 0
  SEND_RPC_URLS: []
JITO:
  ENABLE_JITO: false
BASE_MINTS:
  - MINT: So11111111111111111111111111111111111111112
    MIN_PROFIT: 0
    TRADE_RANGE:
      FROM: 1_000_000_000
      TO: 40_000_000_000
    TRADE_RANGE_COUNT: 2
    TRADE_RANGE_STRATEGY: random

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 spam 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.

.env

KEYS:
  PRIVATE_KEY: ''
  BIRDEYE_API_KEY: ''
  HELIUS_API_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: 80
  INTERMEDIUM_MINT_COUNT_FROM_GECKO: 50
BOT:
  RPC_URL: ''
  AUTO_RESTART: 120
  PROCESS_DELAY: 1000
  MAX_COMPUTE_TIME: 100
  MIN_SOL_BALANCE: 40000000000
  WRAP_SOL_AMOUNT: 100000000
  ENABLE_SIMULATION: true
  PULL_BLOCKHASH_WITH_YELLOWSTONE: true
SPAM:
  ENABLE_SPAM: true
  SPAM_RESTRICT_LEVEL: 3
  SKIP_PREFLIGHT: true
  USE_DIFFERENT_TX_FOR_SENDERS: false
  SKIP_SAME_OPPORTUNITY: false
  FIXED_COMPUTE_UNIT_LIMIT: 0
  COMPUTE_UNIT_PRICE: 10001
  PRIORITY_FEE_UPDATE_INTERVAL: 60
  MAX_RETRIES: 0
  SEND_RPC_URLS: []
  BLOXROUTE:
    ENABLE_BLOXROUTE: true
    BLOXROUTE_REGION: ny
JITO:
  ENABLE_JITO: false

BASE_MINTS:
  - MINT: So11111111111111111111111111111111111111112
    MIN_PROFIT: 10_000_000
    TRADE_SIZE: >-
      8_000_000_000,32_000_000_000,64_000_000_000,128_000_000_000,256_000_000_000
  - MINT: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
    MIN_PROFIT: 500_000
    TRADE_SIZE: 400_000_000,1_600_000_000,6_400_000_000,12_800_000_000

Last updated