Solana Wallet Copy Trader settings
Every setting the Solana Wallet Copy Trader'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 the safety level and its five entry filters, Speed sets the priority fee, spend per copy sets the default size, and take profit and stop loss set the first two exits. Settings marked Advanced only appear only with the Advanced switch on. The Solana Wallet Copy Trader guide explains how the settings work together.
Each wallet you follow
Wallets to follow is a list: each wallet is one [[wallets]] entry in the config, edited in its own card. Every entry has:
- Address and a label of your own, and an on/off switch, so you can stop copying a wallet without forgetting it.
- Size rule and size value: how much each copy spends (below).
- Slippage for its copied buys, in bps.
- Confidence, from 0 to 1: copy only trades the bot is at least this sure were the wallet's own. Trades sent through a router or relayer are scored lower than ones the wallet signed itself.
- Safety rails for this wallet only, for example "don't copy their buys above this much SOL".
- Blocked tokens for this wallet only.
| Size rule | What it spends | In the config |
|---|---|---|
| Fixed amount | The same SOL on every copy. | fixed |
| Share of their buy | A percentage of what the wallet spent. | proportional_target |
| Share of your SOL | A percentage of your bot wallet's SOL on each copy. | fixed_pct |
| Share of your SOL (portfolio) | A percentage of your bot wallet's SOL, Soltrace's portfolio rule. | proportional_portfolio |
| Use the default size | The size set under Spend per copy. | inherit |
A wallet's own size wins over the default size. With Use the default size, or a size of zero, the wallet uses Spend per copy and Default size below.
Exits
Exits is a list too ([[strategy.primitives]]), checked in order; the first one that matches sells. Mirror sells are exits: without one, a followed wallet's sell doesn't make the bot sell, and your own exits decide.
| Exit | Its value | In the config |
|---|---|---|
| Stop loss | Down (%) | stop_loss |
| Take profit | Up (%) | take_profit |
| Trailing stop | Drop from the high (%) | trailing_stop |
| Scale out | Every (%) | scale_out |
| Time limit | After (s) | time_based |
| Price target | Price (USD) | price_threshold |
| Market cap target | Market cap (USD) | mc_threshold |
| Sell when they sell everything | None | exit_on_target_exit |
| Sell everything when they sell everything | None | mirror_full_exit |
| Sell the same share they sell | None | mirror_sell_pct |
Wallets to follow
| Setting | What it does | Values | Starts at |
|---|---|---|---|
Wallets to followwallets | Each wallet the bot copies, with its own size, slippage and safety rails. | list of [[wallets]] entries | 0 wallets |
Copying
| Setting | What it does | Values | Starts at |
|---|---|---|---|
Your time zone (hours from UTC)global.utc_offset_hoursAdvanced only | Where midnight is for the daily loss limit. | number-12 to 14 | 0 |
Practice balanceglobal.practice_starting_solAdvanced only | The virtual SOL practice starts with. | number0.1 to 10000 SOL | 10 SOL |
Copy only onglobal.venuesAdvanced only | Copy trades only on these venues. Empty means every venue it can trade. | list | none |
Smallest copylimits.min_copy_solAdvanced only | Skip a copy smaller than this. Fees and rent would eat most of a smaller one. | number0.001 to 100 SOL | 0.01 SOL |
Never copy these tokensstrategy.blacklist | Token contract addresses it never buys, whoever buys them. | list | none |
When they buy a token you holdstrategy.entry.on_repeat_buy | Skip it, add to your position, or open a new one. | “Skip it” (skip), “Add to my position” (average_in), “Open a new position” (new_position) | Skip it |
Default sizestrategy.entry.sizing.mode | How a wallet set to “Use the default size” sizes its copies. | “Fixed SOL” (fixed_sol), “Share of their buy” (proportional), “Share of your SOL” (wallet_pct) | Fixed SOL |
Spend per copystrategy.entry.sizing.value | SOL per copy with Fixed SOL, or the percentage for the other two. | number0.001 to 1000 | 0.05 |
Entry filters
| Setting | What it does | Values | Starts at |
|---|---|---|---|
Safety levelstrategy.safety_level | High, Medium or Low set the five entry filters for you; Custom keeps the filters as you write them. | “High” (high), “Medium” (medium), “Low” (low), “Custom” (custom) | Medium |
Pool holds at leaststrategy.entry.filters.min_liquidity_usd | Skip pools with less than this. Set by the safety level unless it is Custom. Optional. | number0 to 1000000000 USD | $50,000 |
Token at least this oldstrategy.entry.filters.min_token_age_minutes | Skip younger tokens. Set by the safety level unless it is Custom. Optional. | number0 to 100000 min | 3 min |
Mint and freeze authority revokedstrategy.entry.filters.require_authorities_revoked | Only copy tokens nobody can mint more of or freeze. Set by the safety level unless it is Custom. Optional. | on / off | On |
Slippage at moststrategy.entry.filters.max_slippage_bps | Skip a copy that needs more slippage than this. Set by the safety level unless it is Custom. Optional. | number1 to 5000 bps | 500 bps |
Price impact at moststrategy.entry.filters.max_price_impact_pct | Skip a copy that would move the price more than this. Set by the safety level unless it is Custom. Optional. | number0 to 100 % | 10 % |
Market cap at leaststrategy.entry.filters.min_market_cap_usd | Skip tokens smaller than this. Leave it empty to turn it off. Optional. | number0 to 100000000000 USD | off |
Market cap at moststrategy.entry.filters.max_market_cap_usd | Skip tokens bigger than this. Leave it empty to turn it off. Optional. | number0 to 1000000000000 USD | off |
Their buy at leaststrategy.entry.filters.min_target_buy_sol | Only copy buys where the wallet spent at least this. Leave it empty to turn it off. Optional. | number0 to 10000 SOL | off |
Mayhem coinsstrategy.entry.filters.mayhem_coins | Copy buys of pump.fun Mayhem Mode coins: 2 B supply, half of it traded by pump.fun's AI agent, so prices swing hard. The safety level doesn't change it. | on / off | On |
Caps
| Setting | What it does | Values | Starts at |
|---|---|---|---|
Budgetlimits.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 limitlimits.daily_loss_limit_sol | Stop copying buys 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 |
Max open positionslimits.max_open | How many tokens it may hold at the same time. | whole number1 to 100 | 5 |
Copies open at once at moststrategy.entry.caps.max_concurrent_positionsAdvanced only | Leave it empty to use Max open positions only. Optional. | whole number1 to 100 | 5 |
Most of your SOL in one tokenstrategy.entry.caps.max_vault_pct_per_token | Never put more than this share of your bot wallet's SOL into one token. Leave it empty to turn it off. Optional. | number0 to 100 % | off |
Selling
| Setting | What it does | Values | Starts at |
|---|---|---|---|
Check open positions everyglobal.monitor_interval_msAdvanced only | How often open positions are priced and their exits checked. | whole number250 to 60000 ms | 2000 ms |
Sell slippagestrategy.exit_slippage_bpsAdvanced only | Slippage for exits and mirror sells. Leave it empty to use each wallet's slippage. Optional. | number1 to 5000 bps | off |
Sell slippage (%)strategy.exit_slippage_pctAdvanced only | The same in percent, Soltrace's older form. Leave it empty. Optional. | number0.01 to 50 % | off |
Exitsstrategy.primitives | Stop loss, take profit, trailing stop and mirror sells, in order; the first that matches sells. | list of [[strategy.primitives]] entries | 4 rules |
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 |
Detection
| Setting | What it does | Values | Starts at |
|---|---|---|---|
Watch with gRPCdetection.grpcAdvanced only | The bot's own Yellowstone gRPC connection reads the wallets' trades. | on / off | On |
gRPC commitmentdetection.grpc_commitmentAdvanced only | Processed sees trades sooner; confirmed waits for the network to confirm them. | “Processed” (processed), “Confirmed” (confirmed) | Processed |
Check over RPC toodetection.pollerAdvanced only | Catches trades the stream missed, such as routed trades and reconnects. | on / off | On |
Check everydetection.poll_interval_msAdvanced only | How often the RPC check runs. | whole number250 to 60000 ms | 2000 ms |
Early shred detectiondetection.feed_early | See the wallets' trades in the shreds, before they land. Needs the Early shred detection add-on. | on / off | Off |
Copy only trades seen withindetection.max_signal_age_msAdvanced only | Don't copy a trade seen later than this after it happened. | whole number500 to 600000 ms | 20,000 ms |
Execution
| Setting | What it does | Values | Starts at |
|---|---|---|---|
Priority feenode.priority_fee_micro_lamportsAdvanced only | What you pay validators per compute unit to process your copies first. | whole number0 to 100000000 µlamports/CU | 100,000 µlamports/CU |
Compute limitnode.cu_limitAdvanced only | The most compute units a trade may use. | whole number50000 to 1400000 | 200,000 |
Transaction formatnode.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 refusednode.v1_fallbackAdvanced only | Only matters with the v1 format. | on / off | On |
SOL price if the source is downnode.sol_usd_fallbackAdvanced only | Used for USD filters and exits when the price source can't be reached; 0 skips USD checks instead. | number0 to 100000 USD | $0 |
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.
| Setting | Why you can't change it here |
|---|---|
Live tradingglobal.live | Switched with Go live. |
Wallet fileglobal.payer_keypair_path | Follows your active wallet. |
Bot portglobal.api_port | Managed by AllenHark. |
Data folderglobal.data_dir | Managed by AllenHark. |
Wallets you may followfollow.max_wallets | Set by AllenHark for your plan. Ask support if you need more. |
RPC endpointnode.rpc_uri | Managed by AllenHark. |
gRPC endpointnode.grpc_uri | Managed by AllenHark. |
gRPC tokennode.grpc_x_token | Managed by AllenHark. |
Relay endpointnode.relay | Managed by AllenHark. |
Relay tip walletnode.tip_wallet | Managed by AllenHark. |
SOL price sourcenode.sol_usd_url | Managed by AllenHark. |
Relay tip (default)node.tip_lamports | Managed by AllenHark: set to what the relay needs. |
Aggregator portexits.aggregator_port | Managed by AllenHark. |
Allow WarpRoute routesexits.allow_warproute | Managed by AllenHark. |
Market feedfeed | Written by your server's agent. |
