sliders-upParameters

circle-check

my_pubkey

(required)

Your wallet pubkey address.

grpc_url

(required)

Your gRPC url.

grpc_token

default: None

Your gRPC token, if required by your provider.

grpc_type

default: yellowstone

Supports both yellowstone and thorstream gRPC.

grpc_light

default: false

Some gRPC providers block any subscription stream. Enabling this option should resolve the issue. Only enable it if you encounter an error message similar to this:

copy_pubkeys

default: []

Addresses of other wallets you want to copy. If empty, copy_all must be enabled.

copy_all

default: false

Copy (or monitor) every wallets.

circle-exclamation

[engine]

bot

(required)

Underlying engine to use: smb, notarb or copy . The later will use the same one as the copied wallet.

[engine.smb]

config

(required)

Full path to your initial SMB configuration file.

binary

default: ./smb-onchain

Full path to the smb-onchain binary file.

[engine.notarb]

config

(required)

Full path to your initial NotArb configuration file.

install_dir

default: .

Full path to the NotArb installation directory.

meteora_bin_limit

default: { source = "Local" }

Use { source = "Copy" } to copy meteora bin limit set by your copied wallet.


[sessions]

blacklisted_mints

default: []

A list of mint public key addresses on which sessions should never be started.

timeout

default: 5

Timeout in seconds after which this tool should stop copying a session. A higher value means the tool will continue sending transactions longer after the copied wallet has stopped. A value that’s too low may cause frequent "start/stop" session spam.

copy_jito_no_failure_only

default: true

When this option is enabled and Jito sending is active in your SMB configarrow-up-right, the tool will only copy sessions where no_failure_mode = true. This is because Jito transactions with no_failure_mode = false only include successful instructions, making it very difficult for the tool to reliably track sessions without hitting timeouts.

fees_history_size

default: 40

Maximum number of past transactions to consider for Jito tips (or priority fees) calculation. Only used when the SMB tip strategyarrow-up-right (or CU price strategyarrow-up-right) is set to File. See here for more info.


[sending]

process_delay

default: 400

Same as SMB configuration process_delayarrow-up-right for [[routing.mint_config_list]] .

The bot will send out a tx, wait for process_delay ms, then send again and repeat [...]

compute_units_limit

default: { source = "Copy" }

Compute units are set for each sent transaction using the following options:

  • source :

    • Fixed : fixed compute units limit.

      • { source = "Fixed", value = 350_000 }

    • Copy : dynamically uses the same as the copied wallet.

  • percentage : if you want 20% more compute units than the copied wallet, set this to 120 . Only used when source = "Copy".

    • { source = "Copy", percentage = 120 }

circle-exclamation

enable_spam

default: true

Globally enable/disable spam sending method.

circle-info

Enabling this feature respects the bot engine configuration; if disabled there, the sending method will remain inactive.

spam_compute_unit_price

default: { source = "Local" }

Available parameters are:

  • source :

    • Local : uses the parameter defined in your bot configuration file.

    • Copy : automatically and dynamically adjusted based on copied wallets and fees_history_size. A strategy parameter (see detailed below) can be used to adjust your strategy.

    • Helius : uses Helius Priority Fee API (see more info below helius_fee_api).

  • strategy: used when source = "Copy" . Defaults to Random. Can be:

    • Random, Linear, Exponential or ExponentialRandom : works the same as in SMB.

    • ExponentialRandomReverse : works the same as ExponentialRandom but biases numbers toward the higher end of the range instead of the lower end.

  • count : number of transactions to send at once. Defaults to 1.

  • percentage : adjusts the final amount. Default is 100, which effectively does nothing.

  • minimum_lamports : minimum CU price in lamports. These are not compute unit prices. Defaults to 0. They will be used to compute priority fees (compute unit price x compute units requested) as shown on Solscan:

    2794 lamports in this case

  • maximum_lamports : maximum CU price in lamports. These are not compute unit prices. Defaults to 1_000_000 , which is 0.001 SOL priority fees.

Here are some examples:

enable_jito

default: true

Globally enable/disable jito sending method.

circle-info

Enabling this feature respects the bot engine configuration; if disabled there, the sending method will remain inactive.

jito_tip

default: { source = "Local" }

Same as spam_compute_unit_price, overrides [jito] tip_configarrow-up-right.

Parameter source can be Local, Copy or Jito. When set to Jito, it uses the Jito Tip Floor API (see configuration details below jito_tip_api).

enable_vendors

default: true

Globally enable/disable vendors sending method.

circle-info

Enabling this feature respects the bot engine configuration; if disabled there, the sending method will remain inactive.

vendors_tip

default: { source = "Local" }

Same as spam_compute_unit_price, overrides each [sending_venders] tip_amountarrow-up-right SMB configuration.

Parameter source can only be Local , Copy or Temporal.

vendors_compute_unit_price

default: { source = "Local" }

Same as Parameters, overrides each [sending_venders] compute_unit_pricearrow-up-right SMB configuration.

Parameter source can be Local, Copy or Helius. When set to Helius, it uses the Helius Priority Fee API (see configuration details below helius_fee_api).

jito_tip_api

default: None

  • update_interval : in seconds. Defaults to 15.

  • percentile : the percentile range to use. Can be a number (0-100) or ema50. Numbers are interpolated, so any value between 0 and 100 is valid. Defaults to { from = "ema50", to = "ema50" }.

Example:

temporal_tip_api

default: None

  • update_interval : in seconds. Defaults to 15.

  • percentile : the percentile range to use. Must be a number in range [0, 100]. Numbers are interpolated, so any value between 0 and 100 is valid. Defaults to { from = 25, to = 50 }.

Example:

helius_fee_api

default: None

  • api_keys : an array of Helius API keys. Requests will rotate between these to avoid rate limit, if needed.

  • update_interval : in seconds. Default to 15.

  • percentile : the percentile range to use, derived from Helius "low/medium/high/veryHigh" levels. Numbers are interpolated, so any value between 0 and 100 is valid. Default to { from = 50, to = 50} , which is equivalent to Helius medium level.

  • lookback_slots : adjust the number of slots analyzed for fee estimation. See Helius documentationarrow-up-right. Default to 150.

  • account_keys : see Helius documentationarrow-up-right. Default to SMB and NotArb programs address.

The account keys method provides a simpler alternative to transaction serialization when you need quick fee estimates or want to estimate fees before constructing the complete transaction.

Example:

[sending.lookup_tables]

default

default: []

Additional Address Lookup Tables (ALT, LUT, or ALUT) to include in each transaction, if source is not copy (see below). Even though this tool copies the ALTs used by other users, you can specify extra ALTs here.

To keep your transaction size within the acceptable range and prevent errors, you should add your own here.

circle-info

You should include any address directly linked to your wallet. This non-exhaustive list provides examples:

  • Your wallet pubkey

  • Your associated token account address for WSOL

  • Your associated token account address for USD1

  • Your associated token account address for USDC

  • Your nonce accounts

  • etc.

Avoid adding common DEX program addresses, as they are typically covered by your copy wallet ALTs.

triangle-exclamation

source

default: copy

If you don't want to manage your ALTs manually, CopyChain can use an external provider to retrieve the best possible ALTs for a transaction. This also ensures that your transaction always fits within the maximum size limits. Two options are currently available:

dontlookup_key

default: None

API key, if source = "dontlookup".


[automation]

enabled

default: false

Enable or disable automation in run mode.

max_concurrent

default: 1

Maximum number of wallets copied concurrently.

blacklisted_pubkeys

default: []

List of blacklisted wallets that will never trigger automation.


[[automation.filters]]

enabled

default: true

Enable or disable enclosed filters.

copy_pubkeys

default: []

Specific pubkeys these filters apply to. If empty, copy_pubkeys is used.

[[automation.filters.start]]

circle-info

Start filters are checked against the statistics of copied wallets.

enabled

default: true

Enable or disable this filter.

lookback_window

(required)

The window size, in seconds, to look back when checking this filter.

interval

default: 1

Interval, in seconds, at which the tool should check if this filter is valid.

min_tx

Minimum number of transactions (successes + fails).

min_successes

Minimum number of successful arbitrages.

min_raw_profit

Minimum raw profit, without accounting fees, in lamports.

min_raw_profit_per_success

Minimum raw profit per successful transaction, without accounting fees, in lamports.

min_net_profit

Minimum net profit (raw profit - fees), in lamports.

min_risk_reward

Minimum R/R ratio.

circle-info

A value of 1.0 means the wallet is profitable (positive PnL).

max_fails

Maximum number of failed transactions.

max_fees

Maximum fees spent (priority fees + 3rd party tips), in lamports.

[[automation.filters.stop]]

circle-info

Stop filters are checked against your statistics.

enabled

default: true

Enable or disable this filter.

lookback_window

(required)

The window size, in seconds, to look back when checking this filter.

interval

default: 1

Interval, in seconds, at which the tool should check if this filter is valid.

initial_delay

default: 0

Minimum number of seconds to wait before starting to evaluate this filter.

circle-info

If this value is > 0 , the filter is evaluated immediately after initial_delay . Otherwise, its first evaluation occurs after the next interval.

min_tx

Minimum number of transactions (successes + fails).

min_successes

Minimum number of successful arbitrages.

min_raw_profit

Minimum raw profit, without accounting fees, in lamports.

min_net_profit

Minimum net profit (equivalent to PnL), in lamports.

min_risk_reward

Minimum R/R ratio.

circle-info

A value of 1.0 means you are profitable (positive PnL).

max_loss

Maximum loss allowed (equivalent to PnL), in lamports.

circle-info

This parameter is expressed as a positive number. For example, if you want to stop as soon as your PnL reaches -0.001 SOL, you should set max_loss = 1_000_000

max_fees

Maximum fees allowed, in lamports.


[slot_check]

check_interval

default: 30

Time interval in seconds between RPC slot-lag checks.

circle-check

max_distance

default: 5

Maximum slot delta from mainnet before considering the connection is lagging.

copy_if_lagging

default: false

Allow CopyChain to continue copying even if the connection is lagging.


[misc]

default: 1

Time interval in seconds between showing session stats.

default: 20

Number maximum of wallets to show on the live statistics view.

stop_sol_threshold

default: 0.1

Threshold in SOL (not lamports) at which this tool should stop running. Use this configuration option to stop execution once the balance reaches a minimum floor or to keep some SOL in your wallet instead of emptying it completely on gas.

You can also set it to 0.0 to disable this completly.

log_session_start

default: true

Wheher or not to log sessions start. Log messages look like this:

log_session_end

default: true

Wheher or not to log sessions end. Log messages look like this:

stats_timespan

default: 5

Defines the time window in minutes used to compute windowed statistics such as Reward/Risk multiplier, raw profit, and fees in monitor mode. See Live statisticsfor more details.

show_transaction_errors

default: true

Log transaction parsing errors.

Last updated