Solana Graduation Sniper settings
Every setting the Solana Graduation 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 Graduation 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 |
Launchpadsglobal.venues | Whose graduations it buys. Empty means every launchpad 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 |
|---|---|---|---|
New pool holds at leastmigration.min_liquidity_sol | Skip a graduation whose new pool holds less SOL than this. | number0 to 100000 SOL | 20 SOL |
New pool holds at mostmigration.max_liquidity_sol | Skip a graduation whose new pool holds more SOL than this. Leave it empty for no upper limit. Optional. | number0 to 1000000 SOL | off |
Buy at most this share of the poolmigration.max_buy_pct_of_liquidity | Caps each buy at this share of the new pool's SOL, so a small pool gets a small buy. | number0.1 to 100 % | 2 % |
Seen withinmigration.max_delay_slotsAdvanced only | Skip a graduation that reaches the bot more than this many slots after it happened. | whole number0 to 150 slots | 4 slots |
Filters
| Setting | What it does | Values | Starts at |
|---|---|---|---|
Creator holds at mostmigration.max_dev_holding_pct | Skip it when the creator's own buy at launch was more than this share of the supply. Leave it empty to turn it off. Optional. | number0 to 100 % | off |
On the launchpad for at leastmigration.min_curve_secs | Skip tokens that graduated sooner than this. Leave it empty to turn it off. Optional. | number0 to 604800 s | off |
On the launchpad for at mostmigration.max_curve_secs | Skip tokens that took longer than this to graduate. Leave it empty to turn it off. Optional. | number0 to 604800 s | off |
Count holders before graduationmigration.track_curvesAdvanced only | Follow each launch until it graduates to count its holders and the creator's sells. Needed for the holders filter. | on / off | Off |
Launches followed at oncemigration.max_tracked_curvesAdvanced only | The most launches followed at once for holder counts. | whole number10 to 5000 | 300 |
Holders at leastmigration.min_holders | Skip it when fewer wallets held it before graduation. Needs holder counts on. Leave it empty to turn it off. Optional. | whole number0 to 100000 | off |
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 |
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 |
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. |
Watchlistwatch | Another mode of this bot uses it; this bot ignores it. |
Market cap modemcap | Another mode of this bot uses it; this bot ignores it. |
Dip modedip | Another mode of this bot uses it; this bot ignores it. |
