‼️Trouble shooting
The bot stucks on Waiting for Jupiter connection to http://0.0.0.0:18080/, or you are seeing jupiter-swap-api failed with error reading a body from connection
error reading a body from connection
You can set USE_LOCAL_MARKET_CACHE=true
in your .env file. When this is set to true, it will load the market cache from the local file mainnet.json
. This is useful when you run jup and it's very slow to start, or even fail with error reading a body from connection
. You can update the local file with wget https://cache.jup.ag/markets?v=4 -O mainnet.json
Note by using this, you are responsible to keep the file up to date.
I'm seeing Too Many Requests
, or "statusCode": 429
Too Many Requests
, or "statusCode": 429
You are hitting the rate limit of your RPC. This means your configuration is too aggressive for your RPC to handle. Try reduce the number of intermedium mints you use.
Most free RPCs are not good enough for the bot to run. You need a paid RPC to to run the bot.
price_tracker.update_prices failed with: missing decimals for USDC
You may see this error if you exclude USDC, it can be safely ignored.
error binding to 0.0.0.0:18080: error creating server listener: Address already in use (os error 98)
First make sure you are not running two bot instances on the same machine. If you do make sure one of them has DISABLE_LOCAL_JUPITER=true
To fix this issue, run
If it still not resolved, run
It should output a number for you, let's say it's 11020, then run
I'm seeing a lot of Generated transaction is too large
Generated transaction is too large
It is normal and ok to see this pop up once in a while, but if you are seeing this a lot, consider setting a smaller number for JUP_MAX_ACCOUNTS
in your .env file. e.g.
I'm not seeing any opportunities show up in my log
There are multiple cases where this can happen.
Check if you have set
ENABLE_SIMULATION=false
, simulation is set to true by default, but it will reduce the number of opportunities you see, and if your RPC is slow, that can cause it to not show any opportunities.Check if your jupiter success rate. If that is close to 0, then there's likly a mismatch between your jupiter and the intermedium tokens you use.
Check your minProfit, opportunities will drop as you raise the value of minProfit A LOT.
I'm seeing a lot of opportunities, but nothing lands
This is a big topic and a lot of things can affect it.
The first thing I would suggest is to copy the demo/shyft config from and have something landing first. Then tweak your settings from a working setup.
Performance tuningexplains a lot of the details on what may affect your results.
First check your minProfit setting in base-mint.json
Jito
For jito, it will only land when the transaction succeed. If nothing lands, it may because of a lot of different reasons. Just listing a few here:
You are too slow on reading/sending. The opportunity is already taken by others.
Your tip is not high enough. Note jito rank transactions by raw tip value, so even if you set a high percentage, others may still beat you with a lower tip percentage if their profit is higher. aka 50% of a 2 sol profit is still higher than 90% of a 0.1 sol profit. This usually happens because of different trade size/trade route.
You are sending too many requests to jito. With the bot's setup, you can send about 10 requests/s for jito bundles. If your setup is sending more than that, only 10 of them will get through each second. You should raise your minProfit or reduce the number of trade sizes etc. in this case to reduce the total requests you send.
Spam
For this question, we are specifically talking about having transactions landing. If they already land but failed, that's not what we are talking about here.
For spam, the reason for nothing to land is mostly two reasons:
You are not paying a high enough fee. You can control the fees you use in two ways. Either set COMPUTE_UNIT_PRICE in your .env file, or set PRIORITY_FEE_PERCENTILE in your BASE)MINTS configs.
The rpc you use to send sucks. Different rpc have very different performance on sending. You can use the solana-rpc-benchmarking-tool to test different rpcs to help you find the best one to use.
error while loading shared libraries: libssl.so.3
The bot nees to run on Ubuntu 22+, if you are using a lower version upgrade should resolve your issue.
My jupiter quote time is high
If you have USE_DIRECT_ROUTE_ONLY
set to true, the ideal quote time is single digit ms, and usually acceptable if it's under 30ms. If you have USE_DIRECT_ROUTE_ONLY
set to false, the quote time is acceptable if it's under 300ms.
If your quote time is way higher than these numbers, you are overloading the jupiter api. You can try the following to improve your quote time.
Use a machine with more CPU cores. This may be the most straight forward one, jupiter api is very heavy on CPU usage.
Reduce the number of intermedium mints used. This is mostly helpful when you have
USE_DIRECT_ROUTE_ONLY
set to false. As the more mints you have, the more time jupiter needs to find the best route.Increase
PROCESS_DELAY
.PROCESS_DELAY
means how often you send a new quote to jupiter for updated price info, increase this number can greatly help to reduce the overall requests you send.Reduce the number of trade sizes you use(or
TRADE_RANGE_COUNT
if you use trade range). The bot will quote with every trade size you define, so reduce the total number of trade sizes will help to reduce the requests you send to jupiter.
Profit calculation error
If you are seeing your failed transaction with error contains Profit calculation error
, it's totally normal for spam mode. It means the trade in this transaction is losing you money, aka the output is smaller than the input. The program is designed to fail in this case to prevent you from losing money.
Dashboard shows I'm making profit but I'm actually losing money when I add up my sol
On Solana, whenever you own a new token, you will need to create a new token account for it, and you need to pay ~0.002 SOL rent for the token account. When using the bot, you will trade a lot of different tokens, hence a lot of token accounts will be created in your account. You can get back the rent by closing the token accounts. There are tools that can help you close all token accounts:
Last updated