We'll go over the section where you set what tokens to want to monitor and swap with.
An important thing is you MUST have the same tokens listed in both the bot-config.toml and jupiter-config.toml.
Example if you have Token A you want to perform arbitrage on:
Configurations
Token A on Jupiter
No Token A on Jupiter
Token A on Bot
Monitor price and swap
Attempts to swap, but will find it untradable because it has no price data
No Token A on Bot
Monitor price
Nothing happens at all with Token A
[dynamic_mints](Optional)
This will use the tokens gathered from Jupiter depending on what tags you set.
Refer to the for more information about these tokens.
[dynamic_mints] # this is the only mint configuration where only one is allowed, hence the single brackets
enabled=true
limit=100 # optional - limits the number of mints obtained from this supplier, ordered by highest daily volume first
export_path="dynamic-mints.txt" # optional - useful for debugging
untradable_cooldown="1m" # if the bot detects an untradable token, that token will be put on a cooldown for the given duration (default 1m)
max_per_cycle=10 # optional - used to limit how many mints can be processed from this mint supplier per bot cycle (default unlimited)
update_seconds=10 # this pulls from Jupiter's public endpoint, keep that in mind if running multiple bots for rate limiting (default 10, min 5)
exclude=[ # optional
"So11111111111111111111111111111111111111112", # sol
"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", # usdt
"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", # usdc
]
## NOTE: Filter configurations must be placed at the end, after other settings like exclude and enabled. ##
[[dynamic_mints.filter]] # example filter to pick up all mints with either a birdeye-trending tag OR pump and verified tags
include_tags=[ # an array of tag groups, only one group match required to be included
["birdeye-trending"],
["pump", "verified"]
]
[[dynamic_mints.filter]] # example filter to pick up new mints
max_age="3d" # d=days, h=hours, m=minutes
min_daily_volume=10_000
exclude_tags=[ # an array of tag groups, only one group match is required to be excluded
["strict"],
["community"]
]
[[file_mints]](Optional)
You can manually add mint addresses to either a json or a txt file. Upload these files to your server and in the settings, set the path to it.
[[file_mints]]
enabled=true
untradable_cooldown="1m" # if the bot detects an untradable token, that token will be put on a cooldown for the given duration (default 1m)
max_per_cycle=10 # optional field - use this to limit how many mints can be processed from this mint supplier per bot cycle (default unlimited)
random_order=false # optional field - use this to randomize the order of the list every cycle (default false)
update_seconds=10 # optional field - when set, this file will be loaded every X amount of seconds (default 0)
path="/absolute/path/to/mints.json OR /absolute/path/to/mints.txt" # the actual extension here doesn't matter, as long as the output is either a json list of strings or raw text of 1 mint per line (raw text supports # comments)
enabled=true
untradable_cooldown="1m" if the bot detects an untradable token, that token will be put on a cooldown for the given duration (default 1m)
max_per_cycle=10 optional field - use this to limit how many mints can be processed from this mint supplier per bot cycle (default unlimited)
random_order=false optional field - use this to randomize the order of the list every cycle (default false)
update_seconds=10 optional field - when set, this file will be loaded every X amount of seconds (default 0)
path="/absolute/path/to/mints.json OR /absolute/path/to/mints.txt" the actual extension here doesn't matter, as long as the output is either a json list of strings or raw text of 1 mint per line (raw text supports # comments)
JSON Example File:
Ensure in your JSON mint list you follow the formatting below:
# Start lines with a # to comment
So11111111111111111111111111111111111111112 # another comment example
Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
#BjjvKX5k7gQoGRmvQAA5WMr7EkQ2cirGTSGxAznDpump #Adding a #before will not read the line
[[static_mints]](Optional, Required if no other suppliers)
You can manually put the list of mints directly in the bot-config file if you'd like.
[[static_mints]] # double brackets since we allow multiple
enabled=true
untradable_cooldown="1m" # if the bot detects an untradable token, that token will be put on a cooldown for the given duration (default 1m)
max_per_cycle=10 # optional field - use this to limit how many mints can be processed from this mint supplier per bot cycle (default unlimited)
random_order=false # optional field - use this to randomize the order of the list every cycle (default false)
list=[
"So11111111111111111111111111111111111111112", # sol
"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", # usdt
"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", # usdc
]
enabled: Toggle static mint list.
untradable_cooldown="1m" :
max_per_cycle: Maximum tokens per cycle.
random_order: Shuffle token order.
lists: Array of token mint addresses.
Token Selection Mechanics
NotArb will require you to have a mint list established in the configuration file, and you can have multiple lists enabled.
Order Sequencing:
You can have the list go sequentially from the top to bottom of the list and then restart at the top or you can set random_order = true and it will select tokens at random to find an opportunity for that mint.
Utilizing multiple lists
If you have multiple lists established in your configuration file, you can set how many within a cycle before it goes to the next list and selects its tokens.
In this example, we have two source lists. Here is the sequence of events:
Randomly select 5 mints to arb from mints_list_1
Move to mints_list_2
Start from the top of the list
Work its way down for the first 10 mints
Go back to mints_list_1 and randomly select 5 mints
Repeat
Token Cycling
With NotArb, you can have multiple lists and have them run through every individual list for a certain amount of time. That is what max_per_cycle is for. It will use the amount of tokens for a cycle before moving to the next list to do the same.
The example below shows two different lists (A and B) with different max_per_cycles and having random_order.
Token Selection Strategies
Different users have their own strategies and methods for selecting and/or generating their mint lists. It is best to find a way to automate your list generations as it will be easier and less work. Feel free to visit the NotArb Discord and discuss strategies.