# This file defines comprehensive parameters and settings for the trading bot. # Carefully review and adjust values to match your trading strategy and risk tolerance. # Bot identification and connection settings name: "bot-sniper-1" env_file: ".env" rpc_endpoint: "${SOLANA_NODE_RPC_ENDPOINT}" wss_endpoint: "${SOLANA_NODE_WSS_ENDPOINT}" private_key: "${SOLANA_PRIVATE_KEY}" enabled: true # You can turn off the bot w/o removing its config separate_process: true # Options: "pump_fun" (default), "lets_bonk" platform: "pump_fun" # Geyser configuration (fastest method for getting updates) geyser: endpoint: "${GEYSER_ENDPOINT}" api_token: "${GEYSER_API_TOKEN}" auth_type: "x-token" # or "basic" # Trading parameters # Control trade execution: amount of SOL per trade and acceptable price deviation trade: buy_amount: 0.0001 # Amount of SOL to spend when buying (in SOL) buy_slippage: 0.3 # Maximum acceptable price deviation (0.3 = 30%) sell_slippage: 0.3 # Spend amounts for coins paired against a non-SOL quote asset. # pump.fun now supports quote mints other than SOL (USDC first). Amounts are # in that mint's own whole units, so "usdc: 1.0" means one USDC — it is NOT # comparable to buy_amount above. Keys accept the aliases "sol"/"usdc" or a # raw base58 mint address. A coin whose quote mint has no entry here is # skipped rather than bought with a SOL-sized amount. # SOL always uses buy_amount above and needs no entry. #quote_amounts: # usdc: 1.0 # Exit strategy configuration exit_strategy: "time_based" # Options: "time_based", "tp_sl", "manual" #take_profit_percentage: 0.1 # Take profit at 10% gain (0.1 = 10%) #stop_loss_percentage: 0.1 # Stop loss at 10% loss (0.1 = 10%) max_hold_time: 5 # Maximum hold time in seconds for TP/SL strategy, for time_based - see wait_after_buy #price_check_interval: 2 # Check price every 2 seconds # EXTREME FAST mode configuration # When enabled, skips waiting for the bonding curve to stabilize and RPC price check. # The bot buys the specified number of tokens directly, making the process faster but less precise. # For geyser/logs/blocks listeners the buy is built entirely from the on-chain # CreateEvent — ZERO RPC calls between detection and submission (see # trust_create_event below). pumpportal payloads lack the needed fields, so # that listener does one batched read first (see curve_refresh_budget). extreme_fast_mode: true extreme_fast_token_amount: 20 # Amount of tokens to buy # Pre-buy curve refresh (issue #170). The buyer re-reads the bonding curve / # pool at `processed` before building the buy so fee_recipient, creator_vault, # quote_mint and the token program are current. If the account is not readable # within this budget (seconds), the token is SKIPPED instead of submitting a # buy built from listener-guessed defaults, which tends to revert on-chain. curve_refresh_budget: 2.0 # When the create event carried the canonical creator, mayhem/cashback flags # and quote_mint (geyser/logs/blocks listeners), skip the pre-buy read # entirely: extreme_fast_mode then submits with ZERO RPC calls after # detection. pumpportal events never carry these, so they always refresh. # Set false to force the refresh for every listener. trust_create_event: true # Priority fee configuration # Manage transaction speed and cost on the Solana network. # Note: dynamic mode requires an additional RPC call, which slows down the buying process. priority_fees: enable_dynamic: false # Use latest transactions to estimate required fee (getRecentPrioritizationFees) enable_fixed: true # Use fixed amount below fixed_amount: 1_000_000 # Base fee in microlamports extra_percentage: 0.0 # Percentage increase on riority fee regardless of the calculation method (0.1 = 10%) hard_cap: 1_000_000 # Maximum allowable fee in microlamports to prevent excessive spending # Compute unit limits for transaction processing # Operation-specific defaults are used if not specified: buy=100K, sell=60K compute_units: # Override default CU limits for this platform # buy: 100_000 # Buy operations (ATA creation + trading) # sell: 60_000 # Sell operations (just trading) # Account data size optimization (reduces CU cost and improves tx priority) # Reduces CU cost from 16k to ~128 CU by limiting loaded account data. # Default is 64MB (16k CU). Setting to 512KB significantly reduces overhead. # Note: Savings don't show in "consumed CU" but improve tx priority/cost. # Note (Nov 23, 2025): with data size set to 512KB, transactions fail - increasing to 12.5MB resolves the issue. # Reference: https://www.anza.xyz/blog/cu-optimization-with-setloadedaccountsdatasizelimit # account_data_size: 12_500_000 # Disabled: causes MaxLoadedAccountsDataSizeExceeded with Token-2022 # Filters for token selection filters: match_string: null # Only process tokens with this string in name/symbol bro_address: null # Only trade tokens created by this user address # Restrict which quote assets to trade. Omit (or set null) to allow any quote # mint that has an amount configured under trade.quote_amounts. # Accepts "sol"/"usdc" aliases or raw mint addresses. #allowed_quote_mints: ["sol"] listener_type: "geyser" # Method for detecting new tokens: "logs", "blocks", or "geyser" max_token_age: 0.001 # Maximum token age in seconds for processing marry_mode: false # Only buy tokens, skip selling yolo_mode: false # Continuously trade tokens # Retry and timeout settings retries: max_attempts: 1 # Number of attempts for transaction submission wait_after_creation: 15 # Seconds to wait after token creation (only if EXTREME FAST is disabled) wait_after_buy: 5 # Holding period after buy transaction wait_before_new_token: 15 # Pause between token trades # Token and account management cleanup: # Cleanup mode determines when to manage token accounts. Options: # "disabled": no cleanup will occur. # "on_fail": only clean up if a buy transaction fails. # "after_sell": clean up after selling. # "post_session": clean up all empty accounts after a trading session ends. mode: "post_session" force_close_with_burn: false # Force burning remaining tokens before closing account with_priority_fee: false # Use priority fees for cleanup transactions # Node provider configuration node: max_rps: 25 # Maximum requests per second