Solana MC Breakout Sniper settings
Every setting the Solana MC Breakout Sniper's Expert settings can change, with the same names and help the Strategy page shows. The path is the setting's name in the bot's config file, which is what Raw config and harkctl config show. "Starts at" is a new bot's value (the Balanced starter).
You rarely need these. The Simple controls set most of them for you: Style sets its trigger and guards, how many tokens it holds at once, the protect-gains band and the time limit; Speed sets the priority fee and slippage; spend per token, take profit and stop loss set the buy size and the sell rules. Settings marked Advanced only appear only with the Advanced switch on. The Solana MC Breakout Sniper guide explains how the settings work together.
Ranges
Protect gains on the way down and Take profit on the way up are lists of ranges. Each range has a start and an end, a step, and the share sold at each step:
- a protect-gains range is measured as the drop from the trade's peak: within the range it sells a share for each step down, and everything once the drop passes the end;
- a take-profit range is measured as profit: within the range it sells a share for each step up. A range whose start equals its end is a single sell at that profit, and it still sells if the price jumps past it.
Buying
| Setting | What it does | Values | Starts at |
|---|---|---|---|
Buy sizeglobal.buy_sol | How much SOL to spend on each token. | number0.001 to 100 SOL | 0.05 SOL |
Max open positionsglobal.max_concurrent_tokens | How many tokens it may hold at the same time. | whole number1 to 100 | 5 |
Budgetglobal.budget_sol | Never have more than this much SOL in trades at once. Leave it empty for no budget. Optional. | number0.01 to 10000 SOL | off |
Daily loss limitglobal.daily_loss_limit_sol | Stop buying for the rest of the day once you've lost this much SOL today. Selling carries on, and it resets at midnight. Leave it empty for no limit. Optional. | number0.01 to 10000 SOL | off |
Your time zone (hours from UTC)global.utc_offset_hoursAdvanced only | Where midnight is for the daily loss limit. | whole number-12 to 14 | 0 |
Launchpads and poolsglobal.venues | Where it buys. Empty means every launchpad and pool it supports. | list | none |
Practice balanceglobal.practice_starting_solAdvanced only | The virtual SOL practice starts with. | number0.1 to 10000 SOL | 10 SOL |
When it buys
| Setting | What it does | Values | Starts at |
|---|---|---|---|
Which tokens it watchesmcap.universe | New launches, pools that just graduated, or only the tokens on your watchlist. | “New launches” (new_launches), “Just graduated” (graduated), “My watchlist” (watchlist) | New launches |
Market cap to crossmcap.target | It buys when a token's market cap rises through this. | number1 to 10000000000 | 30,000 |
Inmcap.unit | Whether the market cap is in US dollars or SOL. | “USD” (usd), “SOL” (sol) | USD |
Where crossings come frommcap.sourceAdvanced only | The market feed when it has them, the bot's own sums, or the feed only. | “Automatic” (auto), “Worked out by the bot” (local), “Market feed only” (feed) | Automatic |
Watch each token formcap.track_secsAdvanced only | How long a new launch or graduated pool is watched. | whole number60 to 86400 s | 1800 s |
Tokens watched at oncemcap.max_trackedAdvanced only | When more are watched, the oldest is dropped. | whole number10 to 20000 | 2000 |
Filters
| Setting | What it does | Values | Starts at |
|---|---|---|---|
Only withinmcap.within_minutes_of_launch | Only a crossing this many minutes after the launch. Leave it empty to turn it off. Optional. | number0 to 10080 min | 30 min |
Token at least this oldmcap.min_age_secsAdvanced only | Leave it empty to turn it off. Optional. | number0 to 604800 s | off |
Token at most this oldmcap.max_age_secsAdvanced only | Leave it empty to turn it off. Optional. | number0 to 604800 s | off |
Measure over the lastmcap.window_secsAdvanced only | The window the filters below are measured over. | whole number1 to 3600 s | 60 s |
Buying share at leastmcap.min_buy_ratio_pct | The share of the SOL traded in the window that was buying. Leave it empty to turn it off. Optional. | number0 to 100 % | 55 % |
Volume to market cap at leastmcap.min_vol_mc_pctAdvanced only | SOL traded in the window as a share of the market cap. Leave it empty to turn it off. Optional. | number0 to 1000000 % | off |
Volume at leastmcap.min_volume_sol | SOL traded in the window. Leave it empty to turn it off. Optional. | number0 to 1000000 SOL | 5 SOL |
Pool holds at leastmcap.min_liquidity_sol | The pool's SOL. Leave it empty to turn it off. Optional. | number0 to 1000000 SOL | off |
Start watching trades atmcap.arm_pctAdvanced only | With filters on, start following a token's trades once its market cap reaches this share of the target, so the filters have a full window. | number1 to 99 % | 50 % |
Mayhem coinsglobal.mayhem_coins | Buy pump.fun Mayhem Mode coins: 2 B supply, half of it traded by pump.fun's AI agent, so prices swing hard. | on / off | On |
Watchlist
| Setting | What it does | Values | Starts at |
|---|---|---|---|
Watchlistwatch.tokens | The tokens it watches when “Which tokens it watches” is My watchlist, by contract address. | list of token addresses | 0 tokens |
Selling
| Setting | What it does | Values | Starts at |
|---|---|---|---|
Stop-losssell_strategy.stop_loss_pct | Sell everything if the trade is down this much. | number-99 to 0 % | -30 % |
Protect gains on the way downsell_strategy.sl_ranges | Bands of drop from the peak: sell a share for each step down, everything at the bottom of the band. | list of ranges | 1 range |
Take profit on the way upsell_strategy.tp_ranges | Bands of profit: sell a share for each step up (From = To is one sell at that profit). A step the price jumps past still sells. | list of ranges | 1 range |
Close emptied token accountsglobal.close_token_accountsAdvanced only | After a live trade sells everything, close the token's empty account and get its rent back (about 0.002 SOL). | on / off | On |
Sell when the creator sellsglobal.exit_on_creator_sell | Sell everything when the token's creator sells while the bot holds it. | on / off | not set |
Sell what's left aftersell_strategy.max_hold_secs | Sell the rest of a position after this long. Leave it empty for no time limit. Optional. | number10 to 604800 s | 3600 s |
Check for unsold tokens everyexits.stuck_scan_secsAdvanced only | How often the bot looks in its wallet for tokens it bought that nothing is selling, such as after a sell that kept failing, and sells them. Tokens you bought yourself are never touched. 0 turns it off. | whole number0 to 86400 s | 60 s |
Sell again after a failed sellexits.stuck_after_secsAdvanced only | When every try to sell a token failed, the bot sells it again once this long has passed with no new try. | whole number10 to 86400 s | 120 s |
Sell through an aggregator if neededexits.aggregator_fallbackAdvanced only | When the token's pool is gone or can't take the sell, sell through an aggregator route instead. | on / off | On |
Aggregator slippageexits.aggregator_slippage_bpsAdvanced only | How far the price may move on an aggregator sell; 500 bps is 5 %. | whole number1 to 5000 bps | 500 bps |
Aggregator price impact at mostexits.aggregator_max_price_impact_pctAdvanced only | Refuse aggregator routes that would move the price more than this. | number0 to 100 % | 30 % |
Buy through an aggregator (Beta)exits.aggregator_buyAdvanced only | Buy through an aggregator on pools the bot can't trade itself. Off by default. | on / off | Off |
Sell everything at market capmcap.exit_mcap | Sell the rest when the market cap reaches this, in the same unit. Leave it empty to turn it off. Optional. | number1 to 100000000000 | off |
Blocklist
| Setting | What it does | Values | Starts at |
|---|---|---|---|
Blocked creatorsblocklist.creators | Creator wallets it never buys from. | list | none |
Blocked tokensblocklist.mints | Token contract addresses it never buys. | list | none |
Execution
| Setting | What it does | Values | Starts at |
|---|---|---|---|
Slippageglobal.max_slippage_bpsAdvanced only | How far the price may move between deciding and trading; 1500 bps is 15 %. | whole number1 to 5000 bps | 1500 bps |
Priority feeglobal.cu_price_micro_lamportsAdvanced only | What you pay validators per compute unit to process your trades first. | whole number0 to 100000000 µlamports/CU | 200,000 µlamports/CU |
Compute limitglobal.cu_limitAdvanced only | The most compute units a trade may use. | whole number50000 to 1400000 | 250,000 |
Transaction formatglobal.tx_formatAdvanced only | Legacy, or the newer v1 format with a legacy re-send if it is refused. | “Legacy” (legacy), “v1” (v1) | Legacy |
Re-send as legacy if v1 is refusedglobal.v1_fallbackAdvanced only | Only matters with the v1 format. | on / off | On |
Send every trade through the AllenHark relay (adds a small tip per trade)relay.tip_all | On: every buy, sell and clean-up goes through the relay, for a 0.001 SOL tip each (counted in your fees). Off: only buys and urgent exits go through the relay; the rest are sent without a tip. | on / off | On |
Relay tiprelay.tip_solAdvanced only | The tip per trade through the AllenHark relay. Leave it empty for the bot's own default. Optional. | number0.0001 to 0.1 SOL | off |
Turn off the AllenHark relayrelay.relay_opt_outAdvanced only | Your choice: on means the bot stops sending through the AllenHark relay and uses only the fast senders you added. Leave it off unless you know you want that. | on / off | Off |
Fast senderssendersAdvanced only | Your own accounts with other fast senders (Nozomi, 0slot, Jito, Helius Sender, an RPC). The bot sends each trade through all of them and the relay; with two or more on it pays only one tip per trade. API keys stay on your server. | list of [[senders]] entries | none |
Set for you
These are part of the config but are set by AllenHark or elsewhere in the app, so they are read-only in Expert settings. The Solana Graduation, MC Breakout and Dip Snipers are one program run in three modes, so each config also carries the other two modes' sections, which this bot ignores.
| Setting | Why you can't change it here |
|---|---|
Live tradingglobal.live | Switched with Go live. |
Wallet fileglobal.payer_keypair_path | Follows your active wallet. |
Aggregator portexits.aggregator_port | Managed by AllenHark. |
Allow WarpRoute routesexits.allow_warproute | Managed by AllenHark. |
RPC endpointnode.rpc_uri | Managed by AllenHark. |
Relay endpointnode.relay | Managed by AllenHark. |
Relay QUIC endpointsnode.relay_quic | Managed by AllenHark. |
Relay API keynode.relay_api_key | Managed by AllenHark. |
Relay QUIC fan-outnode.relay_quic_fanout | Managed by AllenHark. |
Relay tip walletnode.tip_wallet | Managed by AllenHark. |
Relay Dedicatednode.relay_dedicated | Managed by AllenHark. |
Relay Dedicated walletsnode.relay_dedicated_wallets | Managed by AllenHark. |
Relay tip (default)node.tip_lamports | Managed by AllenHark: set to what the relay needs. |
Market feedfeed | Written by your server's agent. |
Bot addressserver.bind | Managed by AllenHark. |
Bot portserver.port | Managed by AllenHark. |
Watchlist limitwatch.max_tokens | Set by AllenHark for your deployment. Ask support if you need more. |
Migration modemigration | Another mode of this bot uses it; this bot ignores it. |
Dip modedip | Another mode of this bot uses it; this bot ignores it. |
