# Table of Contents - [SolanaMevBot - Solana Arbitrage Bot | SolanaMevBot](#solanamevbot-solana-arbitrage-bot-solanamevbot) - [Blog | SolanaMevBot](#blog-solanamevbot) - [How to Frontrun on Solana: A Step-by-Step Guide | SolanaMevBot](#how-to-frontrun-on-solana-a-step-by-step-guide-solanamevbot) - [Fees | SolanaMevBot](#fees-solanamevbot) - [The Current Landscape of MEV on Solana | SolanaMevBot](#the-current-landscape-of-mev-on-solana-solanamevbot) - [How this bot work | SolanaMevBot](#how-this-bot-work-solanamevbot) - [Getting started | SolanaMevBot](#getting-started-solanamevbot) - [Onchain program | SolanaMevBot](#onchain-program-solanamevbot) - [Address lookup table | SolanaMevBot](#address-lookup-table-solanamevbot) - [Performance tuning | SolanaMevBot](#performance-tuning-solanamevbot) - [Trouble shooting | SolanaMevBot](#trouble-shooting-solanamevbot) - [Circular config | SolanaMevBot](#circular-config-solanamevbot) - [Bot configurations | SolanaMevBot](#bot-configurations-solanamevbot) - [Config examples | SolanaMevBot](#config-examples-solanamevbot) - [Jupiter Bot | SolanaMevBot](#jupiter-bot-solanamevbot) - [How this bot work | SolanaMevBot](#how-this-bot-work-solanamevbot) - [Beginner's guide to write your own Solana arbitrage bot | SolanaMevBot](#beginner-s-guide-to-write-your-own-solana-arbitrage-bot-solanamevbot) - [FAQ | SolanaMevBot](#faq-solanamevbot) - [Bot Strategy | SolanaMevBot](#bot-strategy-solanamevbot) - [Trouble shooting | SolanaMevBot](#trouble-shooting-solanamevbot) - [Getting started | SolanaMevBot](#getting-started-solanamevbot) - [Sending Vender examples | SolanaMevBot](#sending-vender-examples-solanamevbot) - [Common workflow | SolanaMevBot](#common-workflow-solanamevbot) - [Performance tuning | SolanaMevBot](#performance-tuning-solanamevbot) - [Config examples | SolanaMevBot](#config-examples-solanamevbot) - [Releases | SolanaMevBot](#releases-solanamevbot) - [Releases | SolanaMevBot](#releases-solanamevbot) - [Bot configurations | SolanaMevBot](#bot-configurations-solanamevbot) --- # SolanaMevBot - Solana Arbitrage Bot | SolanaMevBot ![](https://docs.solanamevbot.com/home/~gitbook/image?url=https%3A%2F%2F3811539071-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fx2rxpD03KDvMgJqIkdla%252Fuploads%252FCgJkbyWIRZotnPZktIh6%252FScreen%2520Shot%25202024-06-06%2520at%252010.06.03%2520AM.png%3Falt%3Dmedia%26token%3D781347b9-6a7a-46d2-a864-b48a4ad11e4d&width=768&dpr=4&quality=100&sign=39effe9f&sv=2) making money with SolanaMevBot [](https://docs.solanamevbot.com/home/#overview) Overview -------------------------------------------------------------- Welcome to **SolanaMevBot**, a sophisticated arbitrage trading bot specifically designed for the Solana blockchain. This bot utilizes Solana's high-throughput capabilities to perform fast and efficient arbitrage trades across various decentralized exchanges (DEXs). ### [](https://docs.solanamevbot.com/home/#what-is-arbitrage-trading) What is Arbitrage Trading? Arbitrage trading is a financial strategy that involves exploiting price differences of the same asset across different markets. Traders buy assets where they are cheaper and simultaneously sell where they are more expensive to gain profit from the price difference. In the realm of cryptocurrencies, these price discrepancies can occur due to varying liquidity and trading volumes across exchanges. Arbitrage trading on blockchain networks like Solana is particularly appealing due to the network's low transaction fees and high-speed processing, which are critical for the timely execution needed in arbitrage strategies. ### [](https://docs.solanamevbot.com/home/#features-of-solanamevbot) Features of SolanaMevBot **SolanaMevBot** currently provides two type of bots: Jupiter bot and onchain bot. * **Jupiter bot**: The bot will run a self-hosted Jupiter binary, and keep quoting from it to see if there's profitable arbitrage trade opportunity, and send transactions when one is found. * **Onchain bot**: The onchain bot you just define which mint and pools you want to check for arbitrage opportunities, and the bot will send transactions repeatedly, the onchain program will calculate what's the most optimal trade size and use it to do arbitrage trade. The bot comes equipped with a range of features designed to optimize arbitrage trading on the Solana network: * **High-Speed Execution**: Be the first to find an oppotunity and capture it. * **Automated Trading**: Fully automated to scan for and execute profitable arbitrage opportunities 24/7. * **Diverse Exchange Coverage**: Monitors multiple DEXs within the Solana ecosystem to identify arbitrage opportunities. * **Risk free trading**: SolanaMevBot integrate jito to send transactions, so you never lose on gas fee and will only land transactions with profit when you use jito. **Discord**: [https://discord.gg/ejEuhN5kcV](https://discord.gg/ejEuhN5kcV) [](https://docs.solanamevbot.com/home/#how-does-the-bot-makes-money) How does the bot makes money? ------------------------------------------------------------------------------------------------------- The bot takes a 15% fee only on successful arbitrage transactions(after Jito tip). If nothing lands, no fee will be charged. Your major cost will be RPC and machines to run the bot [](https://docs.solanamevbot.com/home/#you-must-be-a-scammer-i-dont-believe-you) You must be a scammer, I don't believe you -------------------------------------------------------------------------------------------------------------------------------- I know it's hard to convince people, though a scammer may not take the effort to actually build a real product. Here's a dashboard that has all the users running the bot, and for every transaction, you can see the logs contains `SolanaMevBot.com` [https://dune.com/cetipo/solanamevbot-dashboard](https://dune.com/cetipo/solanamevbot-dashboard) Hope this can at least show you we have a working product. I know it's still a long way to convince you to join. But no harm to join the discord at least right? [](https://docs.solanamevbot.com/home/#hardware-requirement) Hardware requirement -------------------------------------------------------------------------------------- Minimum 1 Core. 4GB RAM for Jupiter bot with minimum setup. For onchain bot it can basically run on any machine. [](https://docs.solanamevbot.com/home/#get-started) Get Started -------------------------------------------------------------------- We've put together some helpful guides for you to get setup with our product quickly and easily. Or you can go to sourceforge and download the bot to get started! [https://sourceforge.net/projects/solanamevbot/](https://sourceforge.net/projects/solanamevbot/) [](https://docs.solanamevbot.com/home/#dashboard) Dashboard ---------------------------------------------------------------- Here's a dashboard for current bot users [https://dune.com/cetipo/solanamevbot-dashboard](https://dune.com/cetipo/solanamevbot-dashboard) [🛠️Getting started](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/getting-started) [💵Fees](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/fees) [NextBlog](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog) Last updated 2 months ago --- # Blog | SolanaMevBot [The Current Landscape of MEV on Solana](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/the-current-landscape-of-mev-on-solana) [How to Frontrun on Solana: A Step-by-Step Guide](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide) [Beginner's guide to write your own Solana arbitrage bot](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot) [PreviousSolanaMevBot - Solana Arbitrage Bot](https://docs.solanamevbot.com/home) [NextThe Current Landscape of MEV on Solana](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/the-current-landscape-of-mev-on-solana) Last updated 1 year ago --- # How to Frontrun on Solana: A Step-by-Step Guide | SolanaMevBot Frontrunning is a well-known, albeit controversial, strategy in the world of cryptocurrency trading. It involves executing a trade based on the knowledge of an impending transaction, usually one that is about to impact the price of a token. Frontrunners capitalize on this knowledge by placing their own orders before the large trade is executed. Frontrunning has been a part of crypto trading for a while, especially in high-speed environments like Ethereum and Solana. But Solana, known for its ultra-fast transaction speeds, has posed a unique challenge for frontrunners. In this guide, we’ll explore how frontrunning works, the challenges specific to Solana, and how frontrunners are currently gaining an edge in this ecosystem. * * * [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#what-is-frontrunning) What is Frontrunning? ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Frontrunning, in the context of cryptocurrency, is the practice of placing an order on a market just before a large trade is processed, anticipating that the price will move in your favor once the transaction is confirmed. It’s a form of market manipulation, and while it’s considered unethical or illegal in traditional finance, it has become a part of the game in decentralized finance (DeFi) ecosystems. In simpler terms, if you can predict when and how a big trade will impact the price of a token, you can "front-run" that trade by executing your own order first, capturing the profit as the price moves. * * * [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#frontrunning-on-ethereum-vs.-solana) Frontrunning on Ethereum vs. Solana --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#frontrunning-on-ethereum) **Frontrunning on Ethereum** In Ethereum and similar blockchains, frontrunners have a significant advantage because they can observe the **public mempool**, which contains pending transactions that have not yet been processed. These pending transactions are visible to anyone who monitors the network closely, allowing frontrunners to act on the information before the transaction is finalized. Frontrunners using tools like **Flashbots** or **MEV-Boost** can access these mempool transactions and use bots to automatically place trades based on the expected price changes. The ability to see pending transactions is what makes frontrunning on Ethereum and other similar chains possible. ### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#frontrunning-on-solana-the-challenge) **Frontrunning on Solana: The Challenge** Solana, on the other hand, does not provide a public mempool for its users to monitor pending transactions. This makes frontrunning much harder to execute. Solana is built for speed and efficiency, processing thousands of transactions per second. However, its design removes the traditional method of monitoring mempool data, meaning frontrunners cannot easily see what transactions are waiting to be confirmed. Until recently, **Jito** offered a service that exposed pending transactions, giving frontrunners the ability to execute trades based on the unprocessed transactions. However, as of now, **Jito no longer provides access to the public mempool**, leaving a significant gap for frontrunners. For this reason, getting access to unprocessed transactions on Solana is one of the most difficult hurdles for anyone attempting to frontrun on the network. * * * [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#how-to-get-access-to-unprocessed-transactions-aka-mempool-on-solana) How to Get Access to Unprocessed Transactions(aka mempool) on Solana -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Solana no longer has public mempool, there are a few private parties operating their own private pools, but they are not offering it to the public as they are using it to generate an absurd amount of revenue through sandwich bots. With out direct access to mempool, the key to frontrunning on the network lies in gaining access to the transaction submission flow itself. This is the critical point in the process where transactions are pending but have not yet been added to the blockchain. There are a few ways to gain access to this data: ### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#id-1.-operate-a-trading-bot-others-use) **1\. Operate a Trading Bot Others Use** One way to get closer to unprocessed transactions is by **operating a trading bot that other users rely on**. Some advanced trading platforms and DeFi protocols allow users to interact with a trading bot that monitors and executes orders based on market signals. By operating such a bot, you can capture transaction data before it’s finalized and get a competitive edge over other traders. However, this method requires that your bot has direct access to the underlying transaction data, and you would need to have a large user base for it to be profitable. ### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#id-2.-become-an-rpc-operator) **2\. Become an RPC Operator** Another way to access unprocessed transactions on Solana is by becoming an **RPC operator**. RPC nodes provide a way to communicate with Solana's blockchain, querying data about transactions and block production. By being an RPC operator, you have access to all the transactions submitted through your service. ### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#id-3.-become-a-validator) **3\. Become a Validator** A more advanced and capital-intensive method is to become a **validator** on the Solana network. Validators are responsible for processing and validating transactions on Solana. As part of this process, validators are among the first to see unprocessed transactions before they are included in a block. This gives them an edge in knowing what trades are about to happen and potentially executing their own orders before those trades are finalized. Running a validator requires substantial technical expertise, infrastructure, and a big staking amount on your validator to get enough leader slots. However, it offers one of the most direct ways to access the transaction submission process. * * * [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#frontrunning-using-jito-bundling-transactions) Frontrunning Using Jito: Bundling Transactions ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Once you have access to unprocessed transactions, **the next step is to frontrun by submitting your own bundle of transactions before the large trade is finalized**. This is where **Jito**—while no longer providing public mempool access—comes into play. Jito provides an advanced **transaction bundling** service that allows users to group multiple transactions into a single bundle, which can be processed together as part of a larger transaction. By using Jito, you can submit your own trade alongside a pending transaction in a way that gives you priority, ensuring that your trade is executed first. Here’s how it works: 1. You detect a large trade or transaction that is about to impact the price of an asset. 2. Using your access to unprocessed transactions, you create a transaction bundle that includes your frontrunning order. 3. You submit this bundle via **Jito**, which will ensure your transaction is included before the larger trade is processed. 4. As the larger transaction is confirmed, the price moves in your favor, and you make a profit. By bundling transactions, frontrunners can effectively "squeeze in" their trade ahead of others, capturing the price movement and profiting from the trade. * * * [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#conclusion) Conclusion ------------------------------------------------------------------------------------------------------------------------------------------------------- Frontrunning on Solana is more complex and challenging than on Ethereum, mainly because the network does not offer a public mempool. However, savvy frontrunners are still able to capitalize on transaction submission flows by becoming RPC operators, trading bot operators, or even Solana validators themselves. Once they gain access to unprocessed transactions, they can use tools like **Jito** to bundle their trades and gain a first-mover advantage. While frontrunning can be lucrative, it’s important to be mindful of the ethical and legal considerations. In DeFi, frontrunning is often seen as a form of market manipulation, and depending on how it’s executed, it could have consequences for your reputation or standing within the ecosystem. For those interested in exploring frontrunning on Solana, it’s crucial to understand the infrastructure and technical requirements involved. Frontrunning is not for the faint-hearted, but with the right tools, knowledge, and access to transaction flows, it can still be a profitable venture. [PreviousThe Current Landscape of MEV on Solana](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/the-current-landscape-of-mev-on-solana) [NextBeginner's guide to write your own Solana arbitrage bot](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot) Last updated 1 year ago * [What is Frontrunning?](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#what-is-frontrunning) * [Frontrunning on Ethereum vs. Solana](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#frontrunning-on-ethereum-vs.-solana) * [Frontrunning on Ethereum](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#frontrunning-on-ethereum) * [Frontrunning on Solana: The Challenge](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#frontrunning-on-solana-the-challenge) * [How to Get Access to Unprocessed Transactions(aka mempool) on Solana](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#how-to-get-access-to-unprocessed-transactions-aka-mempool-on-solana) * [1\. Operate a Trading Bot Others Use](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#id-1.-operate-a-trading-bot-others-use) * [2\. Become an RPC Operator](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#id-2.-become-an-rpc-operator) * [3\. Become a Validator](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#id-3.-become-a-validator) * [Frontrunning Using Jito: Bundling Transactions](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#frontrunning-using-jito-bundling-transactions) * [Conclusion](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide#conclusion) --- # Fees | SolanaMevBot SolanaMevBot charges 10% of the profit(after Jito tip) for each successful arb trade in SOL. There's no fee to use the bot. If you use the free tier of Circular, there's an additional 5% of the profit as fee to Circular. This is one of the Fee accounts: [solanamevbot.sol](https://solscan.io/account/FeeuVBK964vYp8QWbP1VY4wv84aRD1DiKMNWv9mfrVMJ) > Jito tip and bot fee are all in SOL, even if you are using USDC to do arbitrage. The amount is calculated based on the SOL price at the moment of the arbitrage transaction. This may lead to botters having more USDC and less SOL while running the bot, this is still net profit if you add up everything together. [PreviousBeginner's guide to write your own Solana arbitrage bot](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot) [NextHow this bot work](https://docs.solanamevbot.com/home/onchain-bot/how-this-bot-work) Last updated 1 month ago --- # The Current Landscape of MEV on Solana | SolanaMevBot **Introduction** Maximal Extractable Value (MEV) refers to the maximum value that can be extracted from reordering, including, or excluding transactions when producing a block on a blockchain. While initially more prominent on Ethereum, Solana has recently seen a significant rise in MEV activities, particularly driven by the Jito protocol. This article explores the latest developments in Solana's MEV landscape, its impact on the ecosystem, and future prospects. **Rise of MEV on Solana** Solana's MEV revenue has surged, surpassing that of Ethereum. Solana validators have recently earned nearly $7 million from MEV in a single week. This growth is largely attributed to Jito, a protocol offering a modified Solana validator client that facilitates MEV extraction. Approximately 78% of Solana validators are using Jito's client, which allows searchers to bundle transactions and include tips for validators. **Challenges and Controversies** Despite the financial benefits, MEV on Solana has faced criticism and challenges. One major issue is the prevalence of "sandwich attacks," where MEV bots manipulate transaction prices for profit. In response to the growing number of such attacks, Jito Labs recently suspended its mempool functionality, a decision that received mixed reactions from the community. The suspension aims to protect users from these predatory practices but also raises concerns about network spam and failed transactions.. #### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/the-current-landscape-of-mev-on-solana#sandwich-bots) **Sandwich Bots** **What are Sandwich Bots?** Sandwich bots are a specific type of MEV bot that takes advantage of the way transactions are ordered within a block. These bots identify large purchase orders and execute a transaction just before the purchase to drive up the price, followed by a transaction right after the purchase to sell at the inflated price. This sequence captures the price difference, effectively "sandwiching" the victim's transaction.. **Sandwich Bots on Solana** Sandwich bots was not really a thing before Jito Lab’s MEV enabled solana validator client. They spend a lot of time trying to fight against sandwich bots that utilize Jito’s mempool service, but failed to do so and finally decided allow it. About a month after the decision, due to the surge in the amout of new sandwich bots that it starts to get a lot of attention from the broader Solana community, they decided to terminate their public mempool offering. However, the absence of the public mempool does not entirely eliminate the risk, people are starting to build their own private mempool and making a huge profit from it. [arsc4jbDnzaqcCLByyGo7fg7S2SmcFsWUzQuDtLZh2y](https://solscan.io/account/arsc4jbDnzaqcCLByyGo7fg7S2SmcFsWUzQuDtLZh2y) is a sandwich bot that runs by the current biggest private mempool, created by the owner of [Deeznode](https://twitter.com/DeezNode) , Ari. The bot is making 6-7 figures everyday. [https://solanaforge.xyz/](https://solanaforge.xyz/) is a new player in the field that has attracted 300k staked SOL already. And there are many more private ones. #### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/the-current-landscape-of-mev-on-solana#arbitrage-bots) **Arbitrage Bots** **What are Arbitrage Bots?** Arbitrage bots are another form of MEV bot that exploits price differences across various exchanges or trading pairs. These bots monitor multiple markets and execute trades to profit from discrepancies in asset prices. On Solana, the high speed and low transaction costs make it an attractive environment for arbitrage opportunities. Arbitrage bots can bring liquidity and efficiency to the market by ensuring that prices remain consistent across different platforms. However, they can also contribute to network congestion and increase transaction fees during periods of high activity. The profitability of arbitrage bots depends on their ability to execute transactions faster than competitors, leveraging Solana's performance capabilities. **Arbitrage bots on Solana** Due to the low gas fee, there are a lot of arbitrage bots running on Solana. There are typically two types of strategies for these bots. Send through jito and pay a big portion of the profit as the tip, or sending hundreds of transactions to hope some lands. One of the top bots are known as Bob and Ben: [https://birdeye.so/profile/benRLpbWCL8P8t51ufYt522419hGF5zif3CqgWGbEUm/today?chain=solana](https://birdeye.so/profile/benRLpbWCL8P8t51ufYt522419hGF5zif3CqgWGbEUm/today?chain=solana) [https://birdeye.so/profile/bobCPc5nqVoX7r8gKzCMPLrKjFidjnSCrAdcYGCH2Ye?chain=solana](https://birdeye.so/profile/bobCPc5nqVoX7r8gKzCMPLrKjFidjnSCrAdcYGCH2Ye?chain=solana) They are operated by the same person and each execute one strategy as described above. Arbitrage bots are less profitable and top players are making mostly 5-6 figures per day. The space of Solana MEV is still evolving every day. As the ecosystem matures, new tools and strategies are being developed to optimize transaction execution and mitigate MEV impacts. Continuous innovation ensures Solana's blockchain remains fair and efficient. [PreviousBlog](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog) [NextHow to Frontrun on Solana: A Step-by-Step Guide](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide) Last updated 1 year ago --- # How this bot work | SolanaMevBot The onchain bot works differently than the Jupiter bot. If you are familiar with the Jupiter bot, this one basically works as a better version of super spam strategy. You specify a few pools for a mint, and send a lot of tx for it. The onchain program will check to see if there's any profitable route, calculate the optimal trade size and make the trade. If there's no profit between the pools the tx will fail. Because we do the calculation onchain, this strategy requires to send a lot of tx and will burn a lot of gas if you use spam. Also because we do every calculation onchain, this bot does not require high speed rpc, does not require yellowstone grpc, does not require a good machine. As long as you can land tx with your rpc consistently you are good to go. The bot current supports onchain calculation between Raydium AMM/Raydium CPMM/Pumpfun Swap/Meteora DLMM [PreviousFees](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/fees) [NextGetting started](https://docs.solanamevbot.com/home/onchain-bot/getting-started) Last updated 6 months ago --- # Getting started | SolanaMevBot Technically there's no minimum requirement for SOL amount to use the bot. But it's recommended to have some sol in the wallet as it will use it to do arbitrage trade. The trade size of this bot is decided onchain to find the most optimal one, so you need to keep enough wsol in your wallet for the trades to happen. Step1: Get a private RPC[](https://docs.solanamevbot.com/home/onchain-bot/getting-started#step1-get-a-private-rpc) Make sure you find a private RPC, public ones won't work for this bot. Step 2: Get a Linux machine[](https://docs.solanamevbot.com/home/onchain-bot/getting-started#step-2-get-a-linux-machine) The bot runs on linux, so you need to either rent one or use your own. The bot has very minimum requirement for hardware. In theory you can run it on any linux machine. WSL on windows is known to have issue and not working well with the bot. Step 3: Download and unzip[](https://docs.solanamevbot.com/home/onchain-bot/getting-started#step-3-download-and-unzip) **Download** First ssh into your Linux machine, then download the zip file for the latest release. The latest release can be found here: [Release](https://docs.solanamevbot.com/home/onchain-bot/releases) Create a new folder for the bot Copy mkdir bot cd bot Install wget Copy sudo apt update sudo apt install wget Download using wget. Note you should replace the link with the one in the latest release: Copy wget https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-1.0.0.zip Install unzip Copy sudo apt update sudo apt install unzip Unzip the file(replace the file name with the one you downloaded) Copy unzip smb-onchain-1.0.0.zip Upgrade to the latest version Copy ./upgrade.sh Check if everything is unzipped correctly Copy ls You should see at least the following files after running `ls` `upgrade.sh` `smb-onchain` Step 4: Config and Run[](https://docs.solanamevbot.com/home/onchain-bot/getting-started#step-4-config-and-run) **Setup** Refer to the [Bot configurations](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations) page for how to create a config file. You should create a config file called `config.toml` Last step, give permissions to the bot to run Copy chmod +x * Now you are all set to run! To run the bot, simply do the following: Copy ./smb-onchain run config.toml Join the [Discord](https://discord.gg/kxANRVSz2S) to learn how to optimize your setup with other users! Step 5: Join Discord[](https://docs.solanamevbot.com/home/onchain-bot/getting-started#step-5-join-discord) Join our discord to learn how to boost your profit! [https://discord.gg/solanamevbot](https://discord.gg/solanamevbot) [PreviousHow this bot work](https://docs.solanamevbot.com/home/onchain-bot/how-this-bot-work) [NextOnchain program](https://docs.solanamevbot.com/home/onchain-bot/onchain-program) Last updated 1 month ago --- # Onchain program | SolanaMevBot The onchain program takes in mints and pools, and will calculate the most optimal arbitrage trade between them and execute the trades. If you want maximum flexibility, you can write your own bot and just call the onchain program from there. This allow you to do whatever customization you want but still utilize the onchain program to get maximum arb opportunity. Demo bot: [https://github.com/Cetipoo/solana-onchain-arbitrage-bot](https://github.com/Cetipoo/solana-onchain-arbitrage-bot) Current supported DEX: * Raydium * Raydium CPMM * Raydium CLMM * Pumpfun Swap * Meteora DLMM * Meteora Dynamic Pool * Meteora Dynamic Pool V2 * Orca whirlpool * Solfi * Vertigo * Heaven Dex **NOTE**: It's recommended to include this address lookup table as it has all the fixed keys needed: 4sKLJ1Qoudh8PJyqBeuKocYdsZvxTcRShUt9aKqwhgvC **NOTE**: It's recommended to use at least 250\_000 compute unit limit when only amm pools/dlmm, and at least 450\_000 compute unit limit with other pools. Ideally you may want 600\_000 - 700\_000 to be able to hit the big arbs and not being limited by compute unit. Using merge mint will need a bit more CU than just one mint. Here's a simplified Rust example for how to interact with the program. You can include multiple X mints with their according pools here. You can also check [https://github.com/Cetipoo/solana-onchain-arbitrage-bot](https://github.com/Cetipoo/solana-onchain-arbitrage-bot) to see how to extract all the keys for each pool type. ### [](https://docs.solanamevbot.com/home/onchain-bot/onchain-program#additional-fee-account) Additional fee account The onchain program supports charging additional fees on top of the bot fee itself. This allows you to build customized bot and charge your users yourself. To do so you need to change two things when constructing the instruction. 1. Add your addtional fee account. Note this need to be the same token mint as base mint. aka if base mint is WSOL your additional fee acount also need to be WSOL account. 2. Change the additional\_fee\_bp arg. The number is in base point. For example if you set 500, it means you will charge 5% of the profit yourself, onchain program will take 15%, and user will get 80% of the whole profit. [PreviousGetting started](https://docs.solanamevbot.com/home/onchain-bot/getting-started) [NextAddress lookup table](https://docs.solanamevbot.com/home/onchain-bot/address-lookup-table) Last updated 1 month ago Copy pub fn generate_onchain_swap_multiple_mints_instruction( wallet: &Pubkey, base_mint: &Pubkey, wallet_base_account: &Pubkey, token_program: &Pubkey, system_program: &Pubkey, associated_token_program: &Pubkey, token_pools: &[(\ Pubkey, // X mint\ Pubkey, // Token program ID\ Pubkey, // Wallet X account\ Vec<(\ Pubkey, // Raydium program ID\ Pubkey, // V9: Base mint\ Pubkey, // Raydium authority\ // Raydium pools\ Pubkey, // Raydium AMM account\ Pubkey, // Raydium token X vault\ Pubkey, // Raydium base vault\ )>,\ Vec<(\ Pubkey, // Raydium CP program ID\ Pubkey, // V9: Base mint\ Pubkey, // Raydium CP authority\ // Raydium CP pools\ Pubkey, // Raydium CP pool\ Pubkey, // Raydium CP amm config\ Pubkey, // Raydium CP token X vault\ Pubkey, // Raydium CP base vault\ Pubkey, // Raydium CP observation\ )>,\ Vec<(\ Pubkey, // Pump program ID\ Pubkey, // V9: Base mint\ Pubkey, // Pump global config\ Pubkey, // Pump authority\ Pubkey, // Pump fee wallet\ // Pump pools\ Pubkey, // Pump pool\ Pubkey, // Pump token X account\ Pubkey, // Pump base account\ Pubkey, // Pump fee token wallet\ Pubkey, // Pump coin creator vault\ Pubkey, // Pump coin creator vault authority\ )>,\ Vec<(\ Pubkey, // DLMM program ID\ Pubkey, // V9: Base mint\ Pubkey, // DLMM event authority\ Option, // DLMM memo program v2 (Only needed for Token 2022)\ // DLMM pairs\ Pubkey, // DLMM pair account\ Pubkey, // DLMM token X vault\ Pubkey, // DLMM base vault\ Pubkey, // DLMM oracle\ Vec, // Bin array accounts\ )>,\ Vec<(\ Pubkey, // Whirlpool program ID\ Pubkey, // V9: Base mint\ Pubkey, // Whirlpool memo program v2\ // Whirlpool pools\ Pubkey, // Whirlpool pool\ Pubkey, // Whirlpool oracle\ Pubkey, // Whirlpool token X vault\ Pubkey, // Whirlpool token base vault\ Vec, // Whirlpool tick array accounts\ )>,\ Vec<(\ Pubkey, // Raydium CLMM program ID\ Pubkey, // V9: Base mint\ Option, // Raydium CLMM memo program v2 (Only needed for Token 2022)\ // Raydium CLMM pools\ Pubkey, // Raydium CLMM pool\ Pubkey, // Raydium CLMM amm config\ Pubkey, // Raydium CLMM observation state\ Pubkey, // Raydium CLMM bitmap extension\ Pubkey, // Raydium CLMM token X vault\ Pubkey, // Raydium CLMM token base vault\ Vec, // Raydium CLMM tick array accounts\ )>,\ Vec<(\ Pubkey, // Meteora program ID\ Pubkey, // V9: Base mint\ Pubkey, // Meteora vault program ID\ // Meteora pools\ Pubkey, // Meteora pool\ Pubkey, // Meteora pool token X vault\ Pubkey, // Meteora pool token base vault\ Pubkey, // Meteora pool token X token vault\ Pubkey, // Meteora pool token base token vault\ Pubkey, // Meteora pool token X lp mint\ Pubkey, // Meteora pool token base lp mint\ Pubkey, // Meteora pool token X pool lp\ Pubkey, // Meteora pool token base pool lp\ Pubkey, // Meteora pool admin token fee X\ Pubkey, // Meteora pool admin token fee base\ )>,\ Vec<(\ Pubkey, // Solfi program ID\ Pubkey, // V9: Base mint\ Pubkey, // Sysvar instructions\ // Solfi pools\ Pubkey, // Solfi pool\ Pubkey, // Solfi token X vault\ Pubkey, // Solfi token base vault\ )>,\ Vec<(\ Pubkey, // DAMM V2 program ID\ Pubkey, // V9: Base mint\ Pubkey, // Event authority\ Pubkey, // Pool authority\ // DAMM V2 pools\ Pubkey, // DAMM V2 pool\ Pubkey, // DAMM V2 token X vault\ Pubkey, // DAMM V2 token base vault\ )>,\ Vec<(\ Pubkey, // Vertigo program ID\ Pubkey, // V9: Base mint\ // Vertigo pools\ Pubkey, // Vertigo pool\ Pubkey, // Vertigo pool owner\ Pubkey, // Vertigo token X vault\ Pubkey, // Vertigo token base vault\ )>,\ Vec<(\ Pubkey, // Heaven program ID\ Pubkey, // V9: Base mint\ // Heaven pools\ Pubkey, // Heaven pool\ Pubkey, // Heaven protocol config\ Pubkey, // Heaven token X vault\ Pubkey, // Heaven token base vault\ )>,\ )], program_id: &Pubkey, minimum_profit: u64, compute_unit_limit: u32, no_failure_mode: bool, use_flashloan: bool, ) -> Instruction { let fee_collector = if use_flashloan { Pubkey::from_str("6AGB9kqgSp2mQXwYpdrV4QVV8urvCaDS35U1wsLssy6H").unwrap() } else { let fee_accounts = [\ Pubkey::from_str("GPpkDpzCDmYJY5qNhYmM14c7rct1zmkjWc2CjR5g7RZ1").unwrap(),\ Pubkey::from_str("J6c7noBHvWju4mMA3wXt3igbBSp2m9ATbA6cjMtAUged").unwrap(),\ Pubkey::from_str("BjsfwxDu7GX7RRW6oSRTpMkASdXAgCcHnXEcatqSfuuY").unwrap(),\ ]; fee_accounts[rand::random::() % fee_accounts.len()] }; let mut accounts = vec![\ AccountMeta::new(*wallet, true),\ AccountMeta::new_readonly(*base_mint, false),\ AccountMeta::new(fee_collector, false),\ AccountMeta::new(*wallet_base_account, false),\ AccountMeta::new_readonly(*token_program, false),\ AccountMeta::new_readonly(*system_program, false),\ AccountMeta::new_readonly(*associated_token_program, false),\ ]; // Add flashloan accounts if enabled if use_flashloan { accounts.push(AccountMeta::new_readonly( Pubkey::from_str("5LFpzqgsxrSfhKwbaFiAEJ2kbc9QyimjKueswsyU4T3o").unwrap(), false, )); let token_pda = derive_vault_token_account( &Pubkey::from_str("MEViEnscUm6tsQRoGd9h6nLQaQspKj7DB2M5FwM3Xvz").unwrap(), base_mint, ); accounts.push(AccountMeta::new(token_pda.0, false)); } // Detect mixed mode by checking if any pool has a USDC base mint let usdc_mint = Pubkey::from_str("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v").unwrap(); let mut has_usdc_base = false; // Check all pools to see if any have USDC as base mint for ( _, _, _, raydium_pools, raydium_cp_pools, pump_pools, dlmm_pairs, whirlpool_pools, raydium_clmm_pools, meteora_pools, solfi_pools, dammv2_pools, vertigo_pools, ) in token_pools.iter() { // Check Raydium pools for (_, pool_base_mint, _, _, _, _) in raydium_pools.iter() { if *pool_base_mint == usdc_mint { has_usdc_base = true; break; } } // Check Raydium CP pools for (_, pool_base_mint, _, _, _, _, _, _) in raydium_cp_pools.iter() { if *pool_base_mint == usdc_mint { has_usdc_base = true; break; } } // Check Pump pools for (_, pool_base_mint, _, _, _, _, _, _, _, _, _) in pump_pools.iter() { if *pool_base_mint == usdc_mint { has_usdc_base = true; break; } } // Check DLMM pairs for (_, pool_base_mint, _, _, _, _, _, _, _) in dlmm_pairs.iter() { if *pool_base_mint == usdc_mint { has_usdc_base = true; break; } } // Check Whirlpool pools for (_, pool_base_mint, _, _, _, _, _, _) in whirlpool_pools.iter() { if *pool_base_mint == usdc_mint { has_usdc_base = true; break; } } // Check Raydium CLMM pools for (_, pool_base_mint, _, _, _, _, _, _, _, _) in raydium_clmm_pools.iter() { if *pool_base_mint == usdc_mint { has_usdc_base = true; break; } } // Check Meteora pools for (_, pool_base_mint, _, _, _, _, _, _, _, _, _, _, _, _) in meteora_pools.iter() { if *pool_base_mint == usdc_mint { has_usdc_base = true; break; } } // Check Solfi pools for (_, pool_base_mint, _, _, _, _) in solfi_pools.iter() { if *pool_base_mint == usdc_mint { has_usdc_base = true; break; } } // Check DAMM V2 pools for (_, pool_base_mint, _, _, _, _, _) in dammv2_pools.iter() { if *pool_base_mint == usdc_mint { has_usdc_base = true; break; } } // Check Vertigo pools for (_, pool_base_mint, _, _, _, _) in vertigo_pools.iter() { if *pool_base_mint == usdc_mint { has_usdc_base = true; break; } } // Check Heaven pools for (_, pool_base_mint, _, _, _, _) in heaven_pools.iter() { if *pool_base_mint == usdc_mint { has_usdc_base = true; break; } } if has_usdc_base { break; } } // If mixed mode is detected, add the required accounts if has_usdc_base { // Add mixed mode accounts let wallet_usdc_account = get_associated_token_address(wallet, &usdc_mint); let raydium_program_id = Pubkey::from_str("675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8").unwrap(); let raydium_authority = Pubkey::from_str("5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1").unwrap(); let sysvar_instructions = solana_program::sysvar::instructions::id(); // Raydium SOL/USDC pool accounts (mainnet) let raydium_sol_usdc_pool = Pubkey::from_str("58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2").unwrap(); let raydium_usdc_vault = Pubkey::from_str("HLmqeL62xR1QoZ1HKKbXRrdN1p3phKpxRMb2VVopvBBz").unwrap(); let raydium_sol_vault = Pubkey::from_str("DQyrAcCrDXQ7NeoqGgDCZwBvWDcYmFCjSb9JtteuvPpz").unwrap(); accounts.push(AccountMeta::new_readonly(usdc_mint, false)); accounts.push(AccountMeta::new(wallet_usdc_account, false)); accounts.push(AccountMeta::new_readonly(raydium_program_id, false)); accounts.push(AccountMeta::new_readonly(raydium_authority, false)); accounts.push(AccountMeta::new_readonly(sysvar_instructions, false)); accounts.push(AccountMeta::new(raydium_sol_usdc_pool, false)); accounts.push(AccountMeta::new(raydium_usdc_vault, false)); accounts.push(AccountMeta::new(raydium_sol_vault, false)); } // Add token mint accounts and their pools for ( x_mint, token_program_id, wallet_x_account, raydium_pools, raydium_cp_pools, pump_pools, dlmm_pairs, whirlpool_pools, raydium_clmm_pools, meteora_pools, solfi_pools, dammv2_pools, vertigo_pools, ) in token_pools.iter() { // Add mint info accounts.push(AccountMeta::new_readonly(*x_mint, false)); accounts.push(AccountMeta::new_readonly(*token_program_id, false)); accounts.push(AccountMeta::new(*wallet_x_account, false)); // Add Raydium pools for (program_id, pool_base_mint, authority, pool, x_vault, base_vault) in raydium_pools.iter() { accounts.push(AccountMeta::new_readonly(*program_id, false)); accounts.push(AccountMeta::new_readonly(*pool_base_mint, false)); // V9: Add base mint accounts.push(AccountMeta::new_readonly(*authority, false)); accounts.push(AccountMeta::new(*pool, false)); accounts.push(AccountMeta::new(*x_vault, false)); accounts.push(AccountMeta::new(*base_vault, false)); } // Add Raydium CP pools for ( program_id, pool_base_mint, authority, pool, amm_config, x_vault, base_vault, observation, ) in raydium_cp_pools.iter() { accounts.push(AccountMeta::new_readonly(*program_id, false)); accounts.push(AccountMeta::new_readonly(*pool_base_mint, false)); // V9: Add base mint accounts.push(AccountMeta::new_readonly(*authority, false)); accounts.push(AccountMeta::new(*pool, false)); accounts.push(AccountMeta::new_readonly(*amm_config, false)); accounts.push(AccountMeta::new(*x_vault, false)); accounts.push(AccountMeta::new(*base_vault, false)); accounts.push(AccountMeta::new(*observation, false)); } // Add Pump pools for ( program_id, pool_base_mint, global_config, authority, fee_wallet, pool, x_account, base_account, fee_token_wallet, coin_creator_vault, coin_creator_vault_authority, ) in pump_pools.iter() { accounts.push(AccountMeta::new_readonly(*program_id, false)); accounts.push(AccountMeta::new_readonly(*pool_base_mint, false)); // V9: Add base mint accounts.push(AccountMeta::new_readonly(*global_config, false)); accounts.push(AccountMeta::new_readonly(*authority, false)); accounts.push(AccountMeta::new(*fee_wallet, false)); accounts.push(AccountMeta::new(*pool, false)); accounts.push(AccountMeta::new(*x_account, false)); accounts.push(AccountMeta::new(*base_account, false)); accounts.push(AccountMeta::new(*fee_token_wallet, false)); accounts.push(AccountMeta::new(*coin_creator_vault, false)); accounts.push(AccountMeta::new_readonly( *coin_creator_vault_authority, false, )); let pump_program_id = Pubkey::from_str("pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA").unwrap(); let (global_volume_accumulator, _) = Pubkey::find_program_address( &[b"global_volume_accumulator"], &pump_program_id, ); let (user_volume_accumulator, _) = Pubkey::find_program_address( &[b"user_volume_accumulator", wallet.as_ref()], &pump_program_id, ); accounts.push(AccountMeta::new(global_volume_accumulator, false)); accounts.push(AccountMeta::new(user_volume_accumulator, false)); // Add fee_config and fee_program accounts for PumpSwap let fee_config = Pubkey::from_str("5PHirr8joyTMp9JMm6nW7hNDVyEYdkzDqazxPD7RaTjx").unwrap(); let pump_fee_program = Pubkey::from_str("pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ").unwrap(); accounts.push(AccountMeta::new_readonly(fee_config, false)); accounts.push(AccountMeta::new_readonly(pump_fee_program, false)); } // Add DLMM pairs for ( program_id, pool_base_mint, event_authority, memo_program, pair, x_vault, base_vault, oracle, bin_arrays, ) in dlmm_pairs.iter() { accounts.push(AccountMeta::new_readonly(*program_id, false)); accounts.push(AccountMeta::new_readonly(*pool_base_mint, false)); // V9: Add base mint accounts.push(AccountMeta::new_readonly(*event_authority, false)); if memo_program.is_some() { accounts.push(AccountMeta::new_readonly(memo_program.unwrap(), false)); } accounts.push(AccountMeta::new(*pair, false)); accounts.push(AccountMeta::new(*x_vault, false)); accounts.push(AccountMeta::new(*base_vault, false)); accounts.push(AccountMeta::new(*oracle, false)); accounts.extend(bin_arrays.clone()); } // Add Whirlpool pools for ( program_id, pool_base_mint, memo_program, pool, oracle, x_vault, base_vault, tick_arrays, ) in whirlpool_pools.iter() { accounts.push(AccountMeta::new_readonly(*program_id, false)); accounts.push(AccountMeta::new_readonly(*pool_base_mint, false)); // V9: Add base mint accounts.push(AccountMeta::new_readonly(MEMO_PROGRAM.clone(), false)); accounts.push(AccountMeta::new(*pool, false)); accounts.push(AccountMeta::new(*oracle, false)); // Oracle NEEDS to be writable for Whirlpool accounts.push(AccountMeta::new(*x_vault, false)); accounts.push(AccountMeta::new(*base_vault, false)); accounts.extend(tick_arrays.clone()); } // Add Raydium CLMM pools for ( program_id, pool_base_mint, memo_program, pool, amm_config, observation_state, bitmap_extension, x_vault, base_vault, tick_arrays, ) in raydium_clmm_pools.iter() { accounts.push(AccountMeta::new_readonly(*program_id, false)); accounts.push(AccountMeta::new_readonly(*pool_base_mint, false)); // V9: Add base mint if memo_program.is_some() { accounts.push(AccountMeta::new_readonly(memo_program.unwrap(), false)); } accounts.push(AccountMeta::new(*pool, false)); accounts.push(AccountMeta::new_readonly(*amm_config, false)); accounts.push(AccountMeta::new(*observation_state, false)); accounts.push(AccountMeta::new(*bitmap_extension, false)); accounts.push(AccountMeta::new(*x_vault, false)); accounts.push(AccountMeta::new(*base_vault, false)); accounts.extend(tick_arrays.clone()); } // Add Meteora pools for ( program_id, pool_base_mint, vault_program_id, pool, x_vault, base_vault, x_token_vault, base_token_vault, x_lp_mint, base_lp_mint, x_pool_lp, base_pool_lp, x_admin_fee, base_admin_fee, ) in meteora_pools.iter() { accounts.push(AccountMeta::new_readonly(*program_id, false)); accounts.push(AccountMeta::new_readonly(*pool_base_mint, false)); // V9: Add base mint accounts.push(AccountMeta::new_readonly(*vault_program_id, false)); accounts.push(AccountMeta::new(*pool, false)); accounts.push(AccountMeta::new(*x_vault, false)); accounts.push(AccountMeta::new(*base_vault, false)); accounts.push(AccountMeta::new(*x_token_vault, false)); accounts.push(AccountMeta::new(*base_token_vault, false)); accounts.push(AccountMeta::new(*x_lp_mint, false)); accounts.push(AccountMeta::new(*base_lp_mint, false)); accounts.push(AccountMeta::new(*x_pool_lp, false)); accounts.push(AccountMeta::new(*base_pool_lp, false)); accounts.push(AccountMeta::new(*x_admin_fee, false)); accounts.push(AccountMeta::new(*base_admin_fee, false)); } // Add Solfi pools for (program_id, pool_base_mint, sysvar_instructions, pool, x_vault, base_vault) in solfi_pools.iter() { accounts.push(AccountMeta::new_readonly(*program_id, false)); accounts.push(AccountMeta::new_readonly(*pool_base_mint, false)); // V9: Add base mint accounts.push(AccountMeta::new_readonly(*sysvar_instructions, false)); accounts.push(AccountMeta::new(*pool, false)); accounts.push(AccountMeta::new(*x_vault, false)); accounts.push(AccountMeta::new(*base_vault, false)); } // Add DAMM V2 pools for ( program_id, pool_base_mint, event_authority, pool_authority, pool, x_vault, base_vault, ) in dammv2_pools.iter() { accounts.push(AccountMeta::new_readonly(*program_id, false)); accounts.push(AccountMeta::new_readonly(*pool_base_mint, false)); // V9: Add base mint accounts.push(AccountMeta::new_readonly(*event_authority, false)); accounts.push(AccountMeta::new_readonly(*pool_authority, false)); accounts.push(AccountMeta::new(*pool, false)); accounts.push(AccountMeta::new(*x_vault, false)); accounts.push(AccountMeta::new(*base_vault, false)); accounts.push(AccountMeta::new_readonly( Pubkey::from_str("Sysvar1nstructions1111111111111111111111111").unwrap(), false, )); } // Add Vertigo pools for (program_id, pool_base_mint, pool, pool_owner, x_vault, base_vault) in vertigo_pools.iter() { accounts.push(AccountMeta::new_readonly(*program_id, false)); accounts.push(AccountMeta::new_readonly(*pool_base_mint, false)); // V9: Add base mint accounts.push(AccountMeta::new(*pool, false)); accounts.push(AccountMeta::new_readonly(*pool_owner, false)); accounts.push(AccountMeta::new(*x_vault, false)); accounts.push(AccountMeta::new(*base_vault, false)); } // Add Heaven pools for (program_id, pool_base_mint, pool, protocol_config, x_vault, base_vault) in heaven_pools.iter() { accounts.push(AccountMeta::new_readonly(*program_id, false)); accounts.push(AccountMeta::new_readonly(*pool_base_mint, false)); // V9: Add base mint accounts.push(AccountMeta::new(*pool, false)); accounts.push(AccountMeta::new(*protocol_config, false)); // Protocol config is writable for Heaven // Add fixed Heaven accounts accounts.push(AccountMeta::new_readonly(solana_program::sysvar::instructions::ID, false)); // Instructions sysvar accounts.push(AccountMeta::new_readonly( Pubkey::from_str("HEvSKofvBgfaexv23kMabbYqxasxU3mQ4ibBMEmJWHny").unwrap(), false, )); // Heaven protocol account 1 accounts.push(AccountMeta::new_readonly( Pubkey::from_str("CH31Xns5z3M1cTAbKW34jcxPPciazARpijcHj9rxtemt").unwrap(), false, )); // Heaven protocol account 2 accounts.push(AccountMeta::new(*x_vault, false)); accounts.push(AccountMeta::new(*base_vault, false)); } } // Create instruction data let mut data = vec![28u8]; data.extend_from_slice(&minimum_profit.to_le_bytes()); data.extend_from_slice(&compute_unit_limit.to_le_bytes()); data.extend_from_slice(if no_failure_mode { &[1] } else { &[0] }); data.extend_from_slice(&0u16.to_le_bytes()); // reserved data.extend_from_slice(if use_flashloan { &[1] } else { &[0] }); Instruction { program_id: *program_id, accounts, data, } } pub fn derive_vault_token_account(program_id: &Pubkey, mint: &Pubkey) -> (Pubkey, u8) { Pubkey::find_program_address(&[b"vault_token_account", mint.as_ref()], program_id) } Copy let additional_fee_collector = Pubkey::from_str("XXX").unwrap(); let mut accounts = vec![\ // Fixed accounts (0-6)\ AccountMeta::new_readonly(*wallet, true), // 0. Wallet (signer)\ AccountMeta::new_readonly(*base_mint, false), // 1. SOL mint\ AccountMeta::new(fee_collector, false), // 2. Fee collector\ AccountMeta::new(additional_fee_collector, false), // 2.5 Additional fee account\ AccountMeta::new(*wallet_base_account, false), // 3. Wallet SOL account\ AccountMeta::new_readonly(*token_program, false), // 4. Token program\ AccountMeta::new_readonly(*system_program, false), // 5. System program\ AccountMeta::new_readonly(*associated_token_program, false), // 6. Associated Token program\ ]; ... ... // Create instruction data let mut data = vec![28u8]; data.extend_from_slice(&minimum_profit.to_le_bytes()); data.extend_from_slice(&compute_unit_limit.to_le_bytes()); data.extend_from_slice(if no_failure_mode { &[1] } else { &[0] }); // Example of 5% additional fee let additional_fee_bp = 500u16; data.extend_from_slice(&additional_fee_bp.to_le_bytes()); data.extend_from_slice(if use_flashloan { &[1] } else { &[0] }); --- # Address lookup table | SolanaMevBot The onchain bot usually has a lot of accounts in the same transaction. And it's impossible to run it if you don't have a good lookup table. The bot has a list of cli commands that help you manage your lookup table. You just need to pass in the config file you use and run `./smb-onchain create-lookup-table config.toml`, and the bot will automatically create a lookup table for you. Or if you are just modifying your config, you can run `./smb-onchain extend-lookup-table config.toml EXISTING_LOOKUP_TABLE_ADDRESS` and the bot will update the address lookup table with the missing addresses. **Note**: Creating a lookup table will cost you ~0.00128064 SOL. This cost cannot be recovered. Adding one address will cost you ~0.00022 SOL, this cost you can get back by deactivate the lookup table and close it. One lookup table can only hold at most 250 addresses. Copy ./smb-onchain -h Commands: create-lookup-table Create a new lookup table using config extend-lookup-table
Extend an existing lookup table deactivate-lookup-table
Deactivate an existing lookup table close-lookup-table
Close a deactivated lookup table. You need to deactivate it first and wait for ~5min before closing it. find-lookup-tables Find all lookup tables owned by the current wallet run Run the arbitrage bot with specified config Options: -h, --help Show this help message [PreviousOnchain program](https://docs.solanamevbot.com/home/onchain-bot/onchain-program) [NextBot configurations](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations) Last updated 5 months ago --- # Performance tuning | SolanaMevBot Make sure you already have the bot running and landing before diving into this page. This page assumes you already have some basic knowledge of the bot. Once you get your bot up and running, the next step is to tune it to get the best performance. There are a lot of variables so the exact config may differ for every person. This page will go through all the things that may affect the performance, and how you can improve it. [](https://docs.solanamevbot.com/home/onchain-bot/performance-tuning#mint-selection) Mint selection -------------------------------------------------------------------------------------------------------- Choosing which mint to run the bot with is likely the most important thing when running this bot. You want the mint to have a lot of volume and price movement to generate enough arbitrage opportunities for you to catch. What usually performs the best is the top few meme coins that is trending everyday. [](https://docs.solanamevbot.com/home/onchain-bot/performance-tuning#when-to-run-the-bot) When to run the bot ------------------------------------------------------------------------------------------------------------------ Similar to mint selection, you want to run the bot when there's a lot of volume and price movement. So days like weekend usually is a worse time to run the bot compare to weekdays. Within a day there are also hot time and cold time, you may want to consider only run the bot when the market is hot so you can burn less gas running the bot. [](https://docs.solanamevbot.com/home/onchain-bot/performance-tuning#pool-selection) Pool selection -------------------------------------------------------------------------------------------------------- The bot supports having multiple pools for the same mint, but having more pools do not always mean having better performance. The bot currently check the price difference between different pool and will try to execute an arbitrage trade between the two pools that have the biggest price difference. This is due to the onchain computation limit so it cannot try every combination effectively within the limited compute resource. This works better when all the pools you use have high liquidity, but if some of your pool has very low liquidity, there may be a big price difference but very small arbitrage profit you can extract from it. So if you are looking for a lot of small arbitrage trades, pools with low liquidity will help you get there as there's usually less competition on smaller pools. But if you are looking for big arbitrage opportunities, you should only include pools with large liquidity. For example if a mint has 3 pools with 200 SOL, 100 SOL, 2 SOL in the liquidity, excluding the one with 2 SOL will help you to get better profits. [](https://docs.solanamevbot.com/home/onchain-bot/performance-tuning#tune-compute-unit-price) Tune compute unit price -------------------------------------------------------------------------------------------------------------------------- [https://solana.com/docs/core/fees](https://solana.com/docs/core/fees) Read this if you don't know how fee is calculated in Solana. You may be able to land in every block with a low fee, but you may not see a lot of landing with it. Your position within each block also matters. By raising your fee you will have a better position within each block, give you a better chance to actually grab the opportunity when it comes. On the other hand having too high of a fee may also not be good. Ideally you want your tx to land right other a trigger tx(usually a trade buying/selling the token you are arbing). So if your fee is too high you may land ahead of these trigger tx. If you fee is too low you may lose the competition to others with a higher fee. Overall higher fee mean a higher risk as you will lose more gas fee for all your failed transactions. So you need to find the balance based on your specific setup. [](https://docs.solanamevbot.com/home/onchain-bot/performance-tuning#tune-compute-unit-limit) Tune compute unit limit -------------------------------------------------------------------------------------------------------------------------- Compute unit limit will affect multiple things for your transaction. 1. It will affect how many bins the bot's onchain program can look through. A general good practice is to set this between 250\_000 to 800\_000. The more dlmm pool you have the higher you should set this. You can first set a high number and check how much compute unit your successful trades usually take after running for a while, and lower your limit to just a bit higher than the biggest value you see. 2. It will affect the final gas fee you pay, together with compute unit price. The higher your limit is, the higher fee you will pay. 3. It will affect the position you land inside each block. Transaction with big limit and low fee may be ranked lower in validators, hence lower your chance to hit the opportunity. And if it's too big sometimes it cannot fit into the end of a block and will be pushed out to the next one. 4. This also affects how big your potential gain can be. Some super large arb opportunity requires a lot of computation so will cost higher CU. These hits can consume up to 600k to 800k CU sometimes depends on the pools. If you set a lower CU limit, your tx won't fail, instead it will just extract less profit from it. [](https://docs.solanamevbot.com/home/onchain-bot/performance-tuning#rpc-for-sending) RPC for sending ---------------------------------------------------------------------------------------------------------- The onchain bot does not require a good reading RPC, but sending RPC can make a big difference. Some RPC allows you to land with low fee, while others may not even land you anything at all with a higher fee. Though which ones are good you may need to test and figure that out yourself. [PreviousReleases](https://docs.solanamevbot.com/home/onchain-bot/releases) [NextJupiter Bot](https://docs.solanamevbot.com/home/deprecated/jupiter-bot) Last updated 4 months ago * [Mint selection](https://docs.solanamevbot.com/home/onchain-bot/performance-tuning#mint-selection) * [When to run the bot](https://docs.solanamevbot.com/home/onchain-bot/performance-tuning#when-to-run-the-bot) * [Pool selection](https://docs.solanamevbot.com/home/onchain-bot/performance-tuning#pool-selection) * [Tune compute unit price](https://docs.solanamevbot.com/home/onchain-bot/performance-tuning#tune-compute-unit-price) * [Tune compute unit limit](https://docs.solanamevbot.com/home/onchain-bot/performance-tuning#tune-compute-unit-limit) * [RPC for sending](https://docs.solanamevbot.com/home/onchain-bot/performance-tuning#rpc-for-sending) --- # Trouble shooting | SolanaMevBot ### [](https://docs.solanamevbot.com/home/onchain-bot/trouble-shooting#transaction-is-too-large-error) Transaction is too large error This means you are including too many accounts in your transaction, to make it work you will need to add lookup tables to your config. The bot provides a build in cli to do so, see [Address lookup table](https://docs.solanamevbot.com/home/onchain-bot/address-lookup-table) ### [](https://docs.solanamevbot.com/home/onchain-bot/trouble-shooting#too-many-open-files) Too many open files Run this before running the bot Copy ulimit -n 65535 ### [](https://docs.solanamevbot.com/home/onchain-bot/trouble-shooting#wrap-wsol) Wrap WSOL For example wrapping 0.1 SOL to WSOL Copy ./smb-onchain wrap-sol config.toml 100000000 ### [](https://docs.solanamevbot.com/home/onchain-bot/trouble-shooting#transaction-is-too-large) Transaction is too large If you just add one mint and two pools, you usually won't see this error. But if you add either more mints or more pools, you will run into this without a proper lookup tables. To understand what is a lookup table, read the official documents [here](https://solana.com/developers/guides/advanced/lookup-tables) . The easiest way to resolve this is to create a lookup table based on your config. The bot provide a cli command to do so: Copy ./smb-onchain create-lookup-table config.toml Or you can extend a table you created previously by using `extend-lookup-table` instead. To see what other commands are supported see [Address lookup table](https://docs.solanamevbot.com/home/onchain-bot/address-lookup-table) Another way is to find lookup tables created by others and use it, but you need to find the correct ones to use otherwise it wont work. [PreviousCircular config](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/circular-config) [NextReleases](https://docs.solanamevbot.com/home/onchain-bot/releases) Last updated 4 months ago * [Transaction is too large error](https://docs.solanamevbot.com/home/onchain-bot/trouble-shooting#transaction-is-too-large-error) * [Too many open files](https://docs.solanamevbot.com/home/onchain-bot/trouble-shooting#too-many-open-files) * [Wrap WSOL](https://docs.solanamevbot.com/home/onchain-bot/trouble-shooting#wrap-wsol) * [Transaction is too large](https://docs.solanamevbot.com/home/onchain-bot/trouble-shooting#transaction-is-too-large) --- # Circular config | SolanaMevBot Here's all the supported config for circular. You can also find the api the bot uses here: [https://pro.circular.fi/documentation#operation/finder\_finder\_get](https://pro.circular.fi/documentation#operation/finder_finder_get) If you are looking for a simple config to get started, you can use this as a starting point: [Use Circular integration(Recommended)](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/config-examples#use-circular-integration-recommended) Copy # Example configuration demonstrating automatic mint discovery via Circular API [routing.circular_api] # Toggle Circular/Finder mint discovery. enabled = true refresh_interval_secs = 5 enable_sol_pool = true enable_usdc_pool = true enable_usd1_pool = true # api_key = "" # Optional. When not provided, a 5% fee from your profit will be send to Circular. # tokensMax — max number of mint entries returned (1 - 50, default 10). max_tokens_list = 5 # tokensTimeRange — analysis window in seconds (0 - 86400, default 3600). max_time_range = 3600 # thresholdMaxTimeRange — time window for threshold computation (0 - 86400, default 3600). threshold_max_time_range = 3600 # tokensMinProfits — filter tokens with net profit >= this USD amount (default 0). min_profit_token = 50 # tokensMaxProfits — optional ceiling on net profits (default unbounded). max_profit_token = 5000 # tokensMinMarketCap / tokensMaxMarketCap — restrict market cap (USD). min_market_cap_token = 0 max_market_cap_token = 10_000_000 # tokensMinVolume / tokensMaxVolume — traded volume (USD) limits. min_volume_token = 0 max_volume_token = 1_000_000 # tokensMinRevenues / tokensMaxRevenues — gross gains (USD) limits. min_revenues_token = 0 max_revenues_token = 1_000_000 # tokensMinTransactions / tokensMaxTransactions — transaction count bounds. min_transactions_token = 10 max_transactions_token = 50_000 # tokensMinLiquidity / tokensMaxLiquidity — pool liquidity (USD) bounds. min_liquidity_token = 0 max_liquidity_token = 1_000_000_000 # tokensMinPool — minimum number of pools required per mint (default 2 from API docs). min_pool_token = 2 # thresholdAmount (legacy Circular) still supported for fallback. threshold_amount = 1000 # thresholdProvider — provider used for threshold recommendation. Enum: FAST|TEMPORAL|JITO|NEXTBLOCK|BLOX|ASTRALANE|FLASHBLOCK|NODEONE|RAZOR|SENDER|STELLIUM|RPC|SMB|ALL. threshold_provider = "JITO" # thresholdBot — bot family for threshold calculation. Enum: SMB|NOTARB|ALL. threshold_bot = "SMB" # thresholdProfits / thresholdRevenues / thresholdTransactions — override thresholds (USD / count). threshold_profits = 500 threshold_revenues = 5000 threshold_transactions = 25 # Percentile settings (fees/tips analysis). fees_percentiles = "p75" # percentilesFees — e.g. "p50", "p90". tips_percentiles = "p90" # percentilesTips — e.g. "p50", "p90". percentiles_provider = "ALL" # percentilesProvider — same enum as threshold provider. percentiles_bot = "SMB" # percentilesBot — SMB|NOTARB|ALL. percentiles_time_range = 3600 # percentilesTimeRange — seconds window (0 - 86400). # Optional token inclusion/exclusion. # exclude_tokens = ["So11111111111111111111111111111111111111112"] # tokensExclude list. # only_include_tokens = ["So11111111111111111111111111111111111111112"] # tokensInclude list. # Signer filters (wallets query parameter). # wallets = ["ExampleWallet111111111111111111111111111111111"] # AMM filters (tokensAMMS). Each entry should match "amm_address,max_pools" (max 5 pools per AMM). amm = [\ { address = "LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo", max_pools_list = 4 },\ { address = "cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG", max_pools_list = 2 },\ { address = "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA", max_pools_list = 2 },\ { address = "CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C", max_pools_list = 2 },\ { address = "675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8", max_pools_list = 2 },\ ] # Default routing metadata for generated mint configs. default_process_delay = 400 [bot] merge_mints = false # This is required for running circular skip_ata_creation = true # This is required for running circular compute_unit_limit = 400_000 ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/circular-config#compute-unit-price) Compute unit price When using circular api, you can also use the fee returned by circular as your compute unit price in your spam config. ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/circular-config#jito-fee) Jito fee When using circular api, you can also use the jito tip returned by circular as your jito tip in your spam config. Note: jito tip may not always be available. ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/circular-config#supported-dexes) Supported dexes * Raydium(675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8) * Raydium CPMM(CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C) * Raydium CLMM(CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK) * Pumpfun Swap(pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA) * Meteora DLMM(LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo) * Meteora Dynamic Pool(Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB) * Meteora DAMM V2(cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG) * Orca whirlpool(whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc) * Solfi(SoLFiHG9TfgtdUXUjWAxi3LtvYuFyDLVhBWxdMZxyCe) * Vertigo(vertigoX7VjeihAAVEZ2z2jNqUdRQQP6iMLiHsD5VZLB) * Heaven Dex(HEAVENoP2qxoeuF8Dj2oT1GHEnu49U5mJYkdeC8BAX2o) ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/circular-config#circular-fee) Circular Fee When no api key is provided, an additional 5% fee will be charged by Circular. This makes the total fee to run the bot 15%(10% bot fee + 5% circular fee). Premium Circular user pays a 3.5% fee. 13.5% total. Pro Circular user pays no fee. only pays 10% bot fee. To get api key visit Circular website: [https://www.circular.bot/plans](https://www.circular.bot/plans) [PreviousSending Vender examples](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples) [NextTrouble shooting](https://docs.solanamevbot.com/home/onchain-bot/trouble-shooting) Last updated 15 days ago * [Compute unit price](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/circular-config#compute-unit-price) * [Jito fee](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/circular-config#jito-fee) * [Supported dexes](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/circular-config#supported-dexes) * [Circular Fee](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/circular-config#circular-fee) Copy [spam] compute_unit_price = { strategy = "Circular", max = 100000, min = 1000, count = 1 } Copy [jito] tip_config = { strategy = "Circular", max = 100000, min = 1000, count = 1 } --- # Bot configurations | SolanaMevBot This is an example `config.toml` file. Copy [routing] [[routing.mint_config_list]] mint = "34HDZNbUkTyTrgYKy2ox43yp2f8PJ5hoM7xsrfNApump" pump_pool_list = [\ "7USDHmdsFsJGsrvuYWvYHKejJBneCLVk8hdMWVvb7VqA",\ ] # This is the Raydium V4 AMM Pools raydium_pool_list = [] # This is the Raydium CPMM Pools raydium_cp_pool_list = [] # This is the Raydium CLMM(Centralized Liquidity) Pools raydium_clmm_pool_list = [] whirlpool_pool_list = [] # Meteora DLMM meteora_dlmm_pool_list = [\ "7h93PJheNPgaVAztMqeFszzkaP1pEdsZyE4n6H9KRVE9",\ "3aRvsnLDyDevu9BvpiauGGQpwszXXqW6zLgxjMG57g2N",\ "CX2SFVBn6kAWm7utL3ccW3F6B9q9sHLmPTikPfPG9oSS",\ ] # Meteora Dynamic Pool meteora_damm_pool_list = [] # Meteora Dynamic Pool V2 meteora_dammv2_pool_list = [] # SolFi Pool solfi_pool_list = [] # Vertigo Pool vertigo_pool_list = [] # Heaven Dex Pool heaven_pool_list = [] lookup_table_accounts = [\ "AnrSWuNc4L4oj54W7g95YEaXfTS58FsSknZdynDqpUJd",\ "q52amtQzHcXs2PA3c4Xqv1LRRZCbFMzd4CGHu1tHdp1"\ ] process_delay = 400 # bundle_group = 1 # Optional, only available for jito [rpc] url = "xxx" [spam] enabled = true enabled_bundle_groups = [1, 2, 3, 4, 5] sending_rpc_urls = [\ "RPC_URL_1",\ "RPC_URL_2"\ ] compute_unit_price = { strategy = "Random", from = 100, to = 100, count = 1 } max_retries = 10 # Optional enable_simple_send = false # You should only set this to true if your sending rpc doesn't work with the default config. [jito] enabled = true enabled_bundle_groups = [1, 2, 3, 4, 5] block_engine_urls = [\ "https://ny.mainnet.block-engine.jito.wtf/api/v1",\ "https://tokyo.mainnet.block-engine.jito.wtf/api/v1",\ "https://slc.mainnet.block-engine.jito.wtf/api/v1",\ "https://amsterdam.mainnet.block-engine.jito.wtf/api/v1",\ "https://frankfurt.mainnet.block-engine.jito.wtf/api/v1",\ "https://singapore.mainnet.block-engine.jito.wtf/api/v1",\ "https://london.mainnet.block-engine.jito.wtf/api/v1",\ ] uuid = "" # Optional ip_addresses = [] # Optional. You should only set this when you have multiple IPs. Support single IP or CIDR format like "192.168.1.0/24" use_min_profit = true # Optional. min_profit = 10_000 # Optional. use_separate_tip_account = false # Optional no_failure_mode = false # Optional. DO NOT ENABLE THIS IF YOU DON'T KNOW WHAT THIS IS. block_engine_strategy = "OneByOne" # "OneByOne" or "AllAtOnce" [[sending_venders.sending_vender]] enabled = false tip_amount = { strategy = "Random", from = 1_000_000, to = 1_000_000, count = 1 } compute_unit_price = { strategy = "Random", from = 1031, to = 2055, count = 1 } urls = [\ "https://fast.circular.fi/transactions",\ ] auth_header = "x-api-key" auth_value = "xxx" tip_accounts = [\ "FAST3dMFZvESiEipBvLSiXq3QCV51o3xuoHScqRU6cB6",\ "FASTHPW6akdGh9PFSdhMTbCuGkCSX7LsUjjnaB2RTQ4v",\ "FASTYKWXRfAoty7SQCM1mGVrmPUyyNcF4tc3DUkLDAu9",\ "FASTPB76TxKPMZ7Q29m8v4zJn8gUjbWyvTEQaaxhwN7M",\ "FASTs6ctgbsuZegMzUs4DPUYhRSZUPCjgCVnttHbpQAp",\ "FASTYmSidNfLwdwiQEhCTtzghxEtaipeNSDSwh9xDPs3",\ "FASTCKnwwY6iL3CknRgg3Zqir7jeagDDhxSnBQQy5a1C",\ "FASTKL1AamNKrwnvbKwo4PU8434BBdqVrTtugM6oDU71"\ ] no_failure_mode = false sending_strategy = "AllAtOnce" # AllAtOnce or OneByOne [jito.tip_config] strategy = "Random" # Random/Linear/Exponential/File from = 10000 to = 100000 count = 3 # This configs how many different tips to generate. All the tx will be send out together. [flashloan] enabled = true [bot] compute_unit_limit = 600_000 # Recommand at least 300_000 if you have dlmm, at least 450_000 if you have orca/raydium clmm. merge_mints = false # Send all the mints in the same tx skip_ata_creation = false # either try to create ata on bot start # memo = "some note" # Optional [wallet] private_key = "xxx" [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#routing) Routing ------------------------------------------------------------------------------------------ In routing, you define which mint(X), a raydium pool that is SOL/X, a meteora dlmm pool that is SOL/X. The bot's onchain program will check if there's a profitable route between the two onchain, and find the optimal trade size, and execute the trades if there's any. Currently the bot only support one raydium pool and one meteora dlmm pool for each list, you can define multiple different ones for the same mint/raydium pool and different meteora dlmm pool. A later version will alow using multiple meteora dlmm pool together. ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#mint_config_list) mint\_config\_list You can define multiple mint and pools. The bot will send out a tx, wait for `process_delay` ms, then send again and repeat for every mint you define. You can also define more than 1 meteora dlmm pool. If you use more than 2 you likely need to add an address lookup table for it as well, otherwise the tx will be too big. ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#define-multiple-mints) Define multiple mints You can define multiple mints by simply copy the \[\[routing.mint\_config\_list\]\] config. Example: ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#bundle_group) bundle\_group `bundle_group` is a feature you can use to decide which mints and it pools goes into which transaction when you enable `merge_mint`. By default, when you use `merge_mint`, all mints with all their pools will be put into one transaction. With `bundle_group`, you can define which mints go together. When sending through rpc, all transactions will send out on its own and use the same fee as you defined in your config. When sending through jito, all transactions generated will be send together in one jito bundle, with only 1 tip in the last transaction. This is can save you some tip when you are running a lot of mints together. `bundle_group` can only be used when `merge_mint = true` , and with jito only when `no_failure_mode = true`. You can set a `bundle_group` number for every `routing.mint_config_list`. mint\_config\_list with the same `bundle_group` number will be put into the same transaction. You can only set 1,2,3,4,5 for `bundle_group` value. When `use_separate_tip_account` is set to true, you can only set 1,2,3,4 for `bundle_group` value. The following example will send a bundle with 2 transactions, first transaction with mint `34HDZNbUkTyTrgYKy2ox43yp2f8PJ5hoM7xsrfNApump` and `7swLujtSwxcNxybT167ii9HXCfy5LZFxNwUEvsZgpump`, second transaction with mint `9Poxe5aDkt8ggFWvcYZ9AX8QBBAAdgW844cgooNCULT`. [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#rpc) RPC ---------------------------------------------------------------------------------- You just need to put your rpc's url here. This is NOT the rpc you use to send transactions. [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#spam) Spam ------------------------------------------------------------------------------------ You can set the rpcs you use to send transactions. This can be the same as your reading rpc. ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#enabled_bundle_groups) enabled\_bundle\_groups This is which group you want to send using spam. When not set all groups will be enabled if spam is enabled. ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#compute_unit_price) compute\_unit\_price You need to config compute unit price when enable spam. You can set `from` equals to `to` value and use any strategy to get a fixed tip amount for all your tx. **Note:** the transaction generated from this will be send out together. You can define it in two format. Define it under \[spam\] directly or define it in its own section Or you can load from a file using file strategy Your file should have one number on each line, example with 2 compute\_unit\_price: [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#jito) Jito ------------------------------------------------------------------------------------ You can also enable sending through jito. Though the success rate of using jito is much lower due to the tip auction and how jito works, but the up side about it is you won't have any failed transactions. **Note:** If you use multiple ip with jito, make sure you don't have ip rotation setup locally, instead you should use the bot's build in support for it. You can just set all the ips you want to use within the config, you can use either single ip or CIDR format like "192.168.1.0/24" ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#enabled_bundle_groups-1) enabled\_bundle\_groups This is which group you want to send using jito. When not set all groups will be enabled if jito is enabled. ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#enable_single_transaction_bundle) enable\_single\_transaction\_bundle When using bundle groups for jito, the bot's default behavior is to bundle all groups tx into one bundle, and only pay one tip in the last transaction. enable\_single\_transaction\_bundle will change this behavior to send every tx as it's own bundle, and pay its own tip. ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#use_min_profit) use\_min\_profit Default to true. **YOU MAY LOSE MONEY WHEN YOU SET THIS TO FALSE.** When this is set to true, the onchain program will use the tip amount as min profit so you never lose money. Though this will make it very hard to land. When this is set to false, the onchain program will NOT use the tip amount as min profit, so it will land as long as there's profit(without considering your tip amount). Make sure you understand what this does before setting this to false. The recommended way to use this is to use a very small tip amount + a lot of ips, basically using jito as a way to land your transactions and consider the tip as gas fee. ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#min_profit) min\_profit Default: 0 This is the number you want to set in addition to your tip amount. For example if you don't want to lose money with jito, you should set this to 10000 if you use separate tip accounts and 5000 if not to cover the basic transaction fee. ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#use_separate_tip_account) use\_separate\_tip\_account Default: false You need to set this to true if you are using ip to get around the jito rate limit. ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#no_failure_mode) no\_failure\_mode Default: false **YOU MAY LOSE MONEY WHEN YOU SET THIS TO TRUE.** When this is enabled, transaction without profit will NOT fail. This means all your tx sending to jito will succeed, pass all simulations, and landed on chain. So you will pay ALL the transaction's tip even if there's no profit. On the other hand, this does help to land tx through jito, especially land successful ones as you by pass all simulations. You are basically using it as a spam rpc in some sense, and all the jito tip you pay is the gas fee. ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#tip_config) tip\_config You need to config tip when enable jito. You can set `from` equals to `to` value and use any strategy to get a fixed tip amount for all your tx. **Note:** the tx generated from this will be send out together. So make sure you have enough rate limit to handle it. You can define it in two format. Define it under \[jito\] directly or define it in its own section Or you can load from a file using file strategy Your file should have one number on each line, example with 2 tips: ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#block_engine_strategy) block\_engine\_strategy Default: "OneByOne" **OneByOne**: The bot will send out tx through all the different urls one by one. This way you can have an effective 6/s rate limit with jito as this bot requires sending out a lot of tx. **AllAtOnce**: The bot will send out the same tx to all regions together. This will give a higher chance for the tx get through if a few of the regions are rate limited. [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#sending_venders) sending\_venders ----------------------------------------------------------------------------------------------------------- Besides sending through RPC and Jito, the bot also support using custom sending venders like Fast/Temporal/0slot/bloxroute etc. The config is almost the same as jito. You can define multiple sending venders to send together. For example on how to config for a given vender, check [Sending Vender examples](https://docs.solanamevbot.com/home/~/revisions/OWxWHEsLGH8gDBkznu0O/onchain-bot/bot-configurations/sending-vender-examples) ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#request-params) request-params This is a customize field to fulfill some vender's special requirement. It's a json field so you can put in any valid values in it. Like for Helius they require you to have `skipPreflight = true` in the request params body and you can set it as in the example above. [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#flashloan) flashloan ---------------------------------------------------------------------------------------------- When enabled, you don't need a lot of WSOL/USDC in your wallet.(You need some to keep your wsol account open). Currently the flashloan pool has 30 SOL and 5000 USDC. [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#bot) Bot ---------------------------------------------------------------------------------- `compute_unit_limit` is a required param. If you have meteora dlmm in your pool you should set it to be at least 300\_000. If you have more than two dlmm pool you should consider adding more compute unit limit here. When you have dlmm pool, the compute\_unit\_limit you set will affect how many bins the bot will look at when doing calculation onchain. Roughly each bin lookup will take ~ 5000 compute unit. 300\_000 will allow the bot to look at ~10 bins onchain. `compute_unit_price_for_ata_creation` the compute unit price you pay for creating ata transaction. Default is 1\_000\_000 if not set. ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#merge_mint) merge\_mint The `merge_mint` config allows you to find opportunities for different mints and pools within one transaction. This sounds good but has it's own limitation. The tx is usually harder to land as you add more mints and pools. This is likely due to the transaction is locking too many accounts and the validator is impossible to find a slot to fit it in. You may also need to use higher fees when the market is hot. You also need higher compute unit limit as the bot's program need to look at more pools onchain with this. **Note**: Bot current support merge up to 3 mints, and 7 pools in total. If you try really hard and have the proper lookup table you can go up to 4 mints and 8 pools. ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#skip_ata_creation) skip\_ata\_creation Default: false When set, the bot will skip the ata creation on bot start. Instead it will create the ata on first successful arb for the token. This will require some additional CU for the first successful tx for the token, in exchange for faster bot start speed. ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#memo) memo Will add an additional memo instruction to all your tx. This is useful if you run multiple bots/strategies on the same wallet and trying to understand which one performs better. [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#wallet) Wallet ---------------------------------------------------------------------------------------- private key can be in any format. [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#log) Log ---------------------------------------------------------------------------------- You can now hide the sending spam logs and just see a summary of it. [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#auto-rebalance) Auto rebalance -------------------------------------------------------------------------------------------------------- You can now config auto rebalance for the bot. The auto rebalance check will run every 1 minute. If your sol balance drop below the `min_sol_balance` config, it will send out a tx to unwrap all your wsol, and wrap only `min_wsol_balance` amount back to wsol. [PreviousAddress lookup table](https://docs.solanamevbot.com/home/onchain-bot/address-lookup-table) [NextConfig examples](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/config-examples) Last updated 1 month ago * [Routing](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#routing) * [mint\_config\_list](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#mint_config_list) * [Define multiple mints](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#define-multiple-mints) * [bundle\_group](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#bundle_group) * [RPC](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#rpc) * [Spam](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#spam) * [enabled\_bundle\_groups](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#enabled_bundle_groups) * [compute\_unit\_price](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#compute_unit_price) * [Jito](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#jito) * [enabled\_bundle\_groups](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#enabled_bundle_groups-1) * [enable\_single\_transaction\_bundle](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#enable_single_transaction_bundle) * [use\_min\_profit](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#use_min_profit) * [min\_profit](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#min_profit) * [use\_separate\_tip\_account](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#use_separate_tip_account) * [no\_failure\_mode](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#no_failure_mode) * [tip\_config](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#tip_config) * [block\_engine\_strategy](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#block_engine_strategy) * [sending\_venders](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#sending_venders) * [request-params](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#request-params) * [flashloan](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#flashloan) * [Bot](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#bot) * [merge\_mint](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#merge_mint) * [skip\_ata\_creation](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#skip_ata_creation) * [memo](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#memo) * [Wallet](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#wallet) * [Log](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#log) * [Auto rebalance](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#auto-rebalance) Copy [[routing.mint_config_list]] mint = "34HDZNbUkTyTrgYKy2ox43yp2f8PJ5hoM7xsrfNApump" pump_pool_list = [\ "7USDHmdsFsJGsrvuYWvYHKejJBneCLVk8hdMWVvb7VqA",\ ] meteora_dlmm_pool_list = [\ "7h93PJheNPgaVAztMqeFszzkaP1pEdsZyE4n6H9KRVE9",\ "3aRvsnLDyDevu9BvpiauGGQpwszXXqW6zLgxjMG57g2N",\ "CX2SFVBn6kAWm7utL3ccW3F6B9q9sHLmPTikPfPG9oSS",\ ] meteora_damm_pool_list = [] meteora_dammv2_pool_list = [] raydium_pool_list = [] raydium_cp_pool_list = [] raydium_clmm_pool_list = [] whirlpool_pool_list = [] vertigo_pool_list = [] heaven_pool_list = [] lookup_table_accounts = [\ "AnrSWuNc4L4oj54W7g95YEaXfTS58FsSknZdynDqpUJd",\ "q52amtQzHcXs2PA3c4Xqv1LRRZCbFMzd4CGHu1tHdp1"\ ] process_delay = 400 Copy [[routing.mint_config_list]] mint = "34HDZNbUkTyTrgYKy2ox43yp2f8PJ5hoM7xsrfNApump" pump_pool_list = [\ "7USDHmdsFsJGsrvuYWvYHKejJBneCLVk8hdMWVvb7VqA",\ ] meteora_dlmm_pool_list = [\ "7h93PJheNPgaVAztMqeFszzkaP1pEdsZyE4n6H9KRVE9",\ ] lookup_table_accounts = [] process_delay = 400 [[routing.mint_config_list]] mint = "7swLujtSwxcNxybT167ii9HXCfy5LZFxNwUEvsZgpump" pump_pool_list = [\ "9iPVQkxUFiL4AQStRqPTcjN2KhZdbqZM7Lmk9vYzgnAT",\ ] raydium_cp_pool_list = [\ "HXCjThojPP1f9uXdQYe7YdbKugT2PvVoTUyvapkErgBY",\ ] lookup_table_accounts = [] process_delay = 400 Copy [[routing.mint_config_list]] mint = "34HDZNbUkTyTrgYKy2ox43yp2f8PJ5hoM7xsrfNApump" pump_pool_list = [\ "7USDHmdsFsJGsrvuYWvYHKejJBneCLVk8hdMWVvb7VqA",\ ] meteora_dlmm_pool_list = [\ "7h93PJheNPgaVAztMqeFszzkaP1pEdsZyE4n6H9KRVE9",\ ] lookup_table_accounts = [] process_delay = 400 bundle_group = 1 [[routing.mint_config_list]] mint = "7swLujtSwxcNxybT167ii9HXCfy5LZFxNwUEvsZgpump" pump_pool_list = [\ "9iPVQkxUFiL4AQStRqPTcjN2KhZdbqZM7Lmk9vYzgnAT",\ ] raydium_cp_pool_list = [\ "HXCjThojPP1f9uXdQYe7YdbKugT2PvVoTUyvapkErgBY",\ ] lookup_table_accounts = [] process_delay = 400 bundle_group = 1 [[routing.mint_config_list]] mint = '9Poxe5aDkt8ggFWvcYZ9AX8QBBAAdgW844cgooNCULT' meteora_dlmm_pool_list = [\ 'nWrt7PWy7y3mcEPi6jWiLnCmb3kwxKPrJjkM7fQqfAY',\ '5xodDMtiRdaZ2GHR93XWYH7Tb3bDgvdZoD9sukhZFoW2',\ ] meteora_dammv2_pool_list = ['4MSn6EafnvgBkh22KbUp8Wqd9ALMUjGRxZgbFi3xV1qD'] lookup_table_accounts = [\ '4sKLJ1Qoudh8PJyqBeuKocYdsZvxTcRShUt9aKqwhgvC',\ '8ULJeesxN3jSyPwJbqtPf18jQgKZjfnwH4tNNQWqJhCs',\ '4vM4gXE99wc7PXXumGGCXeqj9hB1KakxgyRcrwR2y6pJ',\ ] process_delay = 400 bundle_group = 2 Copy [rpc] url = xxx Copy [spam] enabled = true enabled_bundle_groups = [1, 2, 3, 4, 5] # Optional sending_rpc_urls = [\ "RPC_URL_1",\ "RPC_URL_2"\ ] compute_unit_price = { strategy = "Random", from = 100, to = 100, count = 1 } max_retries = 10 # Optional enable_simple_send = false # You should only set this to true if your sending rpc doesn't work with the default config. Copy [spam] compute_unit_price = { strategy = "Random", from = 10000, to = 100000, count = 1 } Copy [spam.compute_unit_price] strategy = "Random" # Random/Linear/Exponential/ExponentialRandom/File from = 10000 to = 100000 count = 3 # This configs how many different compute unit price to generate. All the tx will be send out together. Copy [spam.compute_unit_price] strategy = "File" # Random/Linear/Exponential/ExponentialRandom/File file_path = "cu.txt" Copy 10000 20000 Copy [jito] enabled = true enabled_bundle_groups = [1, 2, 3, 4, 5] # Optional block_engine_urls = [\ "https://ny.mainnet.block-engine.jito.wtf/api/v1",\ "https://tokyo.mainnet.block-engine.jito.wtf/api/v1",\ "https://slc.mainnet.block-engine.jito.wtf/api/v1",\ "https://amsterdam.mainnet.block-engine.jito.wtf/api/v1",\ "https://frankfurt.mainnet.block-engine.jito.wtf/api/v1",\ ] tip_config = { strategy = "Random", from = 10000, to = 100000, count = 1 } uuid = "" # Optional use_min_profit = true # Optional, defalt to true. no_failure_mode = false # Optional use_separate_tip_account = false # Optional ip_addresses = [] # Optional. You should only set this when you have multiple IPs. Support single IP or CIDR format like "192.168.1.0/24" block_engine_strategy = "OneByOne" # "OneByOne" or "AllAtOnce" Copy [jito] tip_config = { strategy = "Random", from = 10000, to = 100000, count = 1 } Copy [jito.tip_config] strategy = "Random" # Random/Linear/Exponential/ExponentialRandom/File from = 10000 to = 100000 count = 3 # This configs how many different tips to generate. All the tx will be send out together. Copy [jito.tip_config] strategy = "File" # Random/Linear/Exponential/ExponentialRandom/File file_path = "tip.txt" Copy 10000 20000 Copy [[sending_venders.sending_vender]] enabled = true # enabled_bundle_groups = [1, 2, 3, 4, 5] # Optional # use_min_profit = true # Optional # min_profit = 0 # Optional tip_amount = { strategy = "Random", from = 1_000_000, to = 1_000_000, count = 1 } compute_unit_price = { strategy = "Random", from = 1031, to = 2055, count = 1 } urls = [\ "https://fast.circular.fi/transactions",\ ] tip_accounts = [\ "FAST3dMFZvESiEipBvLSiXq3QCV51o3xuoHScqRU6cB6",\ "FASTHPW6akdGh9PFSdhMTbCuGkCSX7LsUjjnaB2RTQ4v",\ "FASTYKWXRfAoty7SQCM1mGVrmPUyyNcF4tc3DUkLDAu9",\ "FASTPB76TxKPMZ7Q29m8v4zJn8gUjbWyvTEQaaxhwN7M",\ "FASTs6ctgbsuZegMzUs4DPUYhRSZUPCjgCVnttHbpQAp",\ "FASTYmSidNfLwdwiQEhCTtzghxEtaipeNSDSwh9xDPs3",\ "FASTCKnwwY6iL3CknRgg3Zqir7jeagDDhxSnBQQy5a1C",\ "FASTKL1AamNKrwnvbKwo4PU8434BBdqVrTtugM6oDU71"\ ] no_failure_mode = false sending_strategy = "AllAtOnce" # AllAtOnce or OneByOne # auth_header = "x-api-key" # Only add this when needed # auth_value = "xxx". # Only add this when needed # request-params = { skipPreflight = true } # Only add this when needed # enable_submit_batch = true # Only needed for flashblock Copy [flashloan] enabled = true Copy compute_unit_limit = 300_000 merge_mint = false compute_unit_price_for_ata_creation = 1_000_000 # Optional. Default 1_000_000 skip_ata_creation = true # memo = "some note" # Optional Copy [wallet] private_key = "xxx" Copy [log] enable_sending_log_summary = true summary_interval_seconds = 10 Copy [auto_rebalance] min_sol_balance = 1_000_000_000 # 1 SOL min_wsol_balance = 1 # 0.000000001 SOL compute_unit_price = 100_000 # How much fee you pay for the rebalance tx --- # Config examples | SolanaMevBot [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/config-examples#use-circular-integration-recommended) Use Circular integration(Recommended) --------------------------------------------------------------------------------------------------------------------------------------------------------------------- Copy [routing.circular_api] enabled = true refresh_interval_secs = 5 enable_sol_pool = true enable_usdc_pool = true enable_usd1_pool = true # api_key = "" # Optional. An additional 5% fee will apply when using without a key max_tokens_list = 2 max_time_range = 300 threshold_max_time_range = 300 min_profit_token = 500 min_transactions_token = 5 min_profit_pool = 100 threshold_amount = 100 threshold_provider = "ALL" fees_percentiles = "p75" tips_percentiles = "p90" # Default routing metadata for generated mint configs default_process_delay = 400 amm = [\ { address = "LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo", max_pools_list = 4 },\ { address = "cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG", max_pools_list = 2 },\ { address = "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA", max_pools_list = 2 },\ { address = "CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C", max_pools_list = 2 },\ { address = "675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8", max_pools_list = 2 },\ ] exclude_tokens = [\ "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",\ "So11111111111111111111111111111111111111112",\ "USD1ttGY1N17NEEHLmELoaybftRBUSErhqYiQzvEmuB",\ ] [bot] merge_mints = false skip_ata_creation = true compute_unit_limit = 400_000 [rpc] url = "xxx" [spam] sending_rpc_urls = [\ "xxx",\ ] enabled = true compute_unit_price = { strategy = "Random", from = 1000, to = 100000, count = 1 } max_retries = 10 [flashloan] enabled = true [log] enable_sending_log_summary = true summary_interval_seconds = 10 [auto_rebalance] min_sol_balance = 1_000_000_000 # 1 SOL min_wsol_balance = 1 # 0.000000001 SOL compute_unit_price = 100_000 [wallet] private_key = "xxx" [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/config-examples#manually-config-mint-pools) Manually config mint/pools ------------------------------------------------------------------------------------------------------------------------------------------------ This is a very simple config to arb token Glonk(`GUM5Vd4qe5kgTBHNfmLRaZSKKmYdAWxLJ18DY1Uzpump`). It will check if there's a profitable trade between the pump amm pool `FYDmYvJ3gynXGGFnAbTwN8CRR3LrrNdhztbkuybvYtj2` and the meteora dlmm pool `ToLi6ihgfv4HLPE8GujTxKAexRxopDyk31NVpNgyxuY` You just need to fill in your rpc url in \[rpc\] field and sending\_rpc\_urls field. And your private\_key. [PreviousBot configurations](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations) [NextSending Vender examples](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples) Last updated 2 days ago * [Use Circular integration(Recommended)](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/config-examples#use-circular-integration-recommended) * [Manually config mint/pools](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/config-examples#manually-config-mint-pools) Copy [bot] merge_mints = false compute_unit_limit = 450_000 [[routing.mint_config_list]] mint = "GUM5Vd4qe5kgTBHNfmLRaZSKKmYdAWxLJ18DY1Uzpump" pump_pool_list = ["FYDmYvJ3gynXGGFnAbTwN8CRR3LrrNdhztbkuybvYtj2"] meteora_dlmm_pool_list = ["ToLi6ihgfv4HLPE8GujTxKAexRxopDyk31NVpNgyxuY",] lookup_table_accounts = [] process_delay = 400 [rpc] url = "xxx" [spam] sending_rpc_urls = [\ "xxx",\ ] enabled = true compute_unit_price = { strategy = "Random", from = 10000, to = 50000, count = 1 } max_retries = 10 [flashloan] enabled = true [log] enable_sending_log_summary = true summary_interval_seconds = 10 [auto_rebalance] min_sol_balance = 1_000_000_000 # 1 SOL min_wsol_balance = 1 # 0.000000001 SOL compute_unit_price = 100_000 [wallet] private_key = "xxx" --- # Jupiter Bot | SolanaMevBot This bot is deprecated and in maintainance mode. You can still use it but there will be no new releases for it. [PreviousPerformance tuning](https://docs.solanamevbot.com/home/onchain-bot/performance-tuning) [NextHow this bot work](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/how-this-bot-work) Last updated 4 months ago --- # How this bot work | SolanaMevBot The jupiter bot works by starting a local hosted Jupiter router binary first. The bot then connect to it and query routes from it, and check for profitability based on the quote results from it. The bot provides two main strategy: #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/how-this-bot-work#blind-quote) Blind Quote Blind quote strategy is one way to find opportunities with the bot. You define a list of intermedium mints, the base mints you want to trade with(SOL/USDC/USDT), and what trade size you want to trade with. The bot will use your trade size to quote for all the intermedium mints, one buy and one sell, and find profitable routes by combining the buy and sell routes together. This strategy is a good start for beginner. It's easy to land as it can combine a lot of small opportunities into a big one, and generally less competitive. #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/how-this-bot-work#backrun) Backrun Backrun strategy is monitoring large trade onchain, and counter trade the ones found to find arbitrage opportunities. This is a more advanced strategy, and requires yellowstone to run. Backrun strategy works like the following: 1\. Bot will monitor the markets you defined in DEXES\_TO\_MONITOR, with all the intermedium mints you defined above 2\. If a trade cause the pool's price moved more than MIN\_PRICE\_IMPACT\_PCT, bot will try to create a trade to backrun it 3\. Bot will use the trade size you defined in TRADE\_CONFIGS, to randomly generate a size between MIN\_TRADE\_BP and MAX\_TRADE\_BP, based on the trade you are back running. Or you can just define a FIXED\_SIZE as your trade size here. 4\. Bot will quote the other size of the trade with jupiter, create a full arb trade tx 5\. If the tx has profit and it's higher than MIN\_QUOTE\_PROFIT, bot will send it out [PreviousJupiter Bot](https://docs.solanamevbot.com/home/deprecated/jupiter-bot) [NextGetting started](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/getting-started) Last updated 9 months ago --- # Beginner's guide to write your own Solana arbitrage bot | SolanaMevBot [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#what-is-this) What is this? -------------------------------------------------------------------------------------------------------------------------------------------------------------------- This tutorial walks you from zero to a production-ready bot in four progressive stages: 1. Understanding atomic arbitrage on Solana – the mental model you’ll need before touching code. 2. Bootstrapping a simple bot with Jupiter V6 – minimal effort. 3. Level-up: writing your own router – for searchers who want more control than Jupiter provides. 4. Going on-chain – pushing the arbitrage logic into a smart contract for the lowest possible latency. * * * [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#how-atomic-arbitrage-works-on-solana) How Atomic Arbitrage Works on Solana 🥷 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#what-atomic-really-means) What “atomic” really means On Solana you can bundle several swap instructions (e.g., _buy_ on Orca, _sell_ on Raydium) into a single transaction. If _any_ leg fails the whole transaction is rolled back, so the trader takes _no inventory risk_ – only the fee for a failed signature. This is possible because Solana validates all instructions before committing the block. ### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#the-life-cycle-of-an-atomic-arb) The life-cycle of an atomic arb 1. State read: a searcher maintains a live copy of DEX account data locally. 2. Route discovery: path-finding code spots two prices that diverge beyond a profit threshold. 3. Tx crafting: the bot builds a transaction with _both_ swap instructions. 4. Submission strategy: * _RPC_ – pay gas fee to the leader. * _Jito bundle_ – pay a tip only when the bundle lands. 5. Settlement: either the whole trade lands (profit) or reverts (only fee lost). * * * [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#building-your-first-bot-with-jupiter-v6) Building Your First Bot with Jupiter V6 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- #### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#example-transaction) [Example transaction](https://solscan.io/tx/21z3CdSxY6npZmwik6SimJYLMtWfXtBmcMJJUFVMzD5K4cFzNvPFKDN5LoSfi5D7qtqYFKdBsbF7BWuTscQFNHa7) ### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#why-jupiter) Why Jupiter? * Aggregates >30 DEXs, saving you the trouble of tracking every pool yourself. * Ships a self-hosted binary ([jupiter-swap-api](https://github.com/jup-ag/jupiter-swap-api/releases) ) that you can query locally at millisecond latency. ### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#reference-implementation) Reference implementation [https://github.com/ChainBuff/sol-arb-bot](https://github.com/ChainBuff/sol-arb-bot) ### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#alternative-ready-made-bots) Alternative ready-made bots [SolanaMEVBot Jupiter bot](https://docs.solanamevbot.com/home/jupiter-bot/getting-started) – supports _blind-quote_ and _back-run_ strategies out of the box. Just edit config.toml. * * * [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#advanced-roll-your-own-router) Advanced – Roll Your Own Router ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- #### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#example-transaction-1) [Example transaction](https://solscan.io/tx/4JiABtWskFR44gdWRw9ygdBPatC1bKVBYiM1J2KNwPMP7rsVfCwNgSQEbZ1aZQaL6J41eFByKY4PY68APr9BLjdU) ### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#why-leave-jupiter) Why leave Jupiter? **Need** **Jupiter** **Custom router** Full control over path search algorithm Closed-source graph; you only get the REST API. Write your own heuristics (e.g., favor depth over price). Adding exotic pools Wait for Jupiter to integrate. Plug your adapter immediately. Latency budget 5-20 ms typical self-hosted. Can embed in the _same_ process as your strategy for sub-5 ms. ### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#reference-implementation-1) Reference implementation [https://github.com/blockworks-foundation/autobahn](https://github.com/blockworks-foundation/autobahn) * * * [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#advanced-on-chain-arbitrage-bots) Advanced – On-Chain Arbitrage Bots ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [**Example transaction**](https://solscan.io/tx/2JtgbXAgwPib9L5Ruc5vLhQ5qeX5EMhVDQbcCaAYVJKpEFn22ArEqXhipu5fFyhrEwosiHWzRUhWispJUCYyAnKT) ### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#why-push-logic-on-chain) Why push logic on-chain? * Latency – state is read _during_ execution, not before submission, eliminating the off-chain read phase. * Speed – Instead of sending the tx after seeing an opportunity, you just keep sending and when there's profit your tx will take it. * Hardware-light – no need for Yellowstone gRPC or a beefy validator; a $5 VPS works. ### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#reference-implementation-2) Reference implementation Onchain program: [https://github.com/buffalojoec/arb-program](https://github.com/buffalojoec/arb-program) Offchain bot: [https://github.com/Cetipoo/solana-onchain-arbitrage-bot](https://github.com/Cetipoo/solana-onchain-arbitrage-bot) ### [](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#alternative-ready-made-bots-1) Alternative ready-made bots [SolanaMEVBot Onchain bot](https://docs.solanamevbot.com/home/onchain-bot/getting-started) – supports a large range of dexes. Just edit config.toml to run the bot. [PreviousHow to Frontrun on Solana: A Step-by-Step Guide](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/how-to-frontrun-on-solana-a-step-by-step-guide) [NextFees](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/fees) Last updated 5 months ago * [What is this?](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#what-is-this) * [How Atomic Arbitrage Works on Solana 🥷](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#how-atomic-arbitrage-works-on-solana) * [What “atomic” really means](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#what-atomic-really-means) * [The life-cycle of an atomic arb](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#the-life-cycle-of-an-atomic-arb) * [Building Your First Bot with Jupiter V6](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#building-your-first-bot-with-jupiter-v6) * [Why Jupiter?](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#why-jupiter) * [Reference implementation](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#reference-implementation) * [Alternative ready-made bots](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#alternative-ready-made-bots) * [Advanced – Roll Your Own Router](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#advanced-roll-your-own-router) * [Why leave Jupiter?](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#why-leave-jupiter) * [Reference implementation](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#reference-implementation-1) * [Advanced – On-Chain Arbitrage Bots](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#advanced-on-chain-arbitrage-bots) * [Why push logic on-chain?](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#why-push-logic-on-chain) * [Reference implementation](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#reference-implementation-2) * [Alternative ready-made bots](https://docs.solanamevbot.com/home/solanamevbot-solana-arbitrage-bot/blog/beginners-guide-to-write-your-own-solana-arbitrage-bot#alternative-ready-made-bots-1) --- # FAQ | SolanaMevBot [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/faq#what-does-this-bot-do) What does this bot do? ------------------------------------------------------------------------------------------------------------------- SolanaMevBot is an atomic arbitrage trading bot, which makes profit by trading between different DEXs and catch the price difference between them in a single TX to make profit. Example: ![](https://docs.solanamevbot.com/home/~gitbook/image?url=https%3A%2F%2F3811539071-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fx2rxpD03KDvMgJqIkdla%252Fuploads%252FCgJkbyWIRZotnPZktIh6%252FScreen%2520Shot%25202024-06-06%2520at%252010.06.03%2520AM.png%3Falt%3Dmedia%26token%3D781347b9-6a7a-46d2-a864-b48a4ad11e4d&width=768&dpr=4&quality=100&sign=39effe9f&sv=2) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/faq#how-profitable-is-this-bot) How profitable is this bot? ----------------------------------------------------------------------------------------------------------------------------- Atomic arbitrage trades are usually low risk and low margin. You won't make 100 SOL a day running the bot, but you also won't lose all your fundings overnight. A single trade may only earn you 0.0001 SOL for example. Though the up side about it is it's close to 0 risk running the bot. Unlike meme coin trading where you face big risk if you didn't sell the token in time, for atomic arbitrage trade your transaction won't succeed if it doesn't make you any profit. And you won't hold any tokens as all of them will be bought and sold in the same transaction. The overall profitability depends on a lot of different factors, market conditions, your VPS/RPC, your bot strategy etc. Most of the bot users are earning enough to cover their VPS/RPC cost, and can earn from 0.1 SOL to a few SOL every day. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/faq#how-does-the-bot-work) How does the bot work? ------------------------------------------------------------------------------------------------------------------- The bot periodically try to use all the trade sizes you defined to trade through all the intermedium mints and see if there's any profitable arbitrage opportunities. This may lead to hundreds or thousands of requests to Jupiter to get price quote and time for the bot to process all these potential routes to find opportunities. Here are some of the logs that are useful to help you see how performant your setsup is **Time Spent**: This is how long in total the bot spent to find an opportunity and sent it out, on one trade size + one intermedium mint. **Jupiter Quote Time**: This is how long it takes to make quotes to Jupiter(multiple ones) to check if there's an opportunity, on one trade size + one intermedium mint. If this is too high for you check [My jupiter quote time is high](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#my-jupiter-quote-time-is-high) [PreviousReleases](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases) Last updated 1 year ago * [What does this bot do?](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/faq#what-does-this-bot-do) * [How profitable is this bot?](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/faq#how-profitable-is-this-bot) * [How does the bot work?](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/faq#how-does-the-bot-work) --- # Bot Strategy | SolanaMevBot The bot provides a lot of different configurations, which can allow users to use different types of strategy running it. There are unlimited ways to use the bot, here just list out a few that is known to work well. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy#jito-only-strategy) Jito-only strategy --------------------------------------------------------------------------------------------------------------------- This is the default strategy for the bot. When using jito-only, you are not afraid of failed tx eating your profits, so with this strategy you usually want to set `ENABLE_SIMULATION=false` and trying to maximize the 1/s Jito transaction limits, by either having a lot of mints or a lot of trade sizes. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy#jito-only-strategy-with-a-lot-of-ips) Jito-only strategy with a lot of IPs --------------------------------------------------------------------------------------------------------------------------------------------------------- This works well on a few high volume/high liquidity pairs like SOL/USDC, TRUMP/USDC. The idea is to spread your trade sizes and tip sizes, utilizing a lot of IPs to get around the jito rate limitation. You can also combine kamino flashloan in this strategy, and has some big trade sizes and big tips. This strategy usually works well on days SOL pump or dump. On an average day this strategy does not work so well. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy#catch-all-strategy-with-a-lot-of-mints) Catch-all strategy with a lot of mints ------------------------------------------------------------------------------------------------------------------------------------------------------------- This type of strategy usually involves using yellowstone with a large number for `INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE`, some may also hand craft a large `intermedium-mints.json` file. This strategy tries to catch all possible movements for different mints, in the cost of not being able to have a small `PROCESS_DELAY`, hence may not be able to catch the opportunity at the earliest possible time. **Example**: `Shyft account config` in [Config examples](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations/config-examples) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy#spam-strategy) Spam strategy ----------------------------------------------------------------------------------------------------------- This strategy sends transactions through borht jito and spam, and you usually When using `ENABLE_SPAM=true`, failed transaction is a big part of your cost. You usually want to either set `ENABLE_SIMULATION=true`, or have `SKIP_PREFLIGHT=false` to reduce the failed transactions, and figuring out a good [`PRIORITY_FEE_PERCENTILE`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#priority_fee_percentile) to use in your `BASE_MINTS` based on your setup. **Example**: [`Spam config`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations/config-examples#spam-config-this-is-an-example-config-for-how-to-use-spam-strategy.-note-you-need-multiple-good-rpcs) in [Config examples](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations/config-examples) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy#focused-strategy-with-a-few-selected-mints) Focused strategy with a few selected mints --------------------------------------------------------------------------------------------------------------------------------------------------------------------- This type of strategy usually just use a very small set of mints, but focusing on speed and trying to catch the opportunity at its earliest time. This usually involves a small or even 0 value for `PROCESS_DELAY`, usually paired with a hand crafted `intermedium-mints.json` file, and sometimes only running SOL as base mint and set `USE_DIRECT_ROUTE_ONLY=true` to minimize the time for finding an opportunity. This strategy does need you to manually or write a script to automatically update the intermedium mints as market can shift its focus pretty quickly. You can also utilize the `INTERMEDIUM_MINTS_FROM_ADDRESSES` to copy trade other top players' mints. You can find top players on [https://www.circular.bot/trends](https://www.circular.bot/trends) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy#super-spam-strategy-with-only-1-or-2-mints) Super spam strategy with only 1 or 2 mints --------------------------------------------------------------------------------------------------------------------------------------------------------------------- This is a high risk strategy, if not configured correctly you may burn a lot of SOL through gas fee. Make sure you know what you are doing and keep an eye on it while tuning it. This is a high risk high reward strategy, and need you to always watch out to the market and willing to take the risk. This will only work on days where market is super active, and likely only lose you money when the market is dry. The idea is very simple, you just keep spamming a lot of transactions on the mints that is having the highest volume and velocity, ignoring whether it has profit or not, using minimum fee to land an arb tx in every slot possible. A good amount is to land 20-100 tx per minute, and some of them will eventually hit some big arbs. A working setup of this may likely cost you 0.2 SOL - 1 SOL per hour for just the gas fee. And you will be rewarded with some big arbs that may get you a few SOL in profit every few hours. Due to the high gas burn rate, this requires you to always watch out for the market trend and quickly switch mints when attention is no longer there. If you just leave it running overnight you are very likely going to lose a lot of gas fee if market turns to a different direction. Knows when to stop running this while there's no good target is also part of the strategy. The key part of this strategy is when and which - when to use this and which mint to use for arb. And that will make most of the difference using this strategy. You also need several good RPCs for sending, and this is one of the rare strategies that you want to turn of Jito. This strategy takes some time to tweak, as you need to find the balance between number of tx you send/fee you pay/mints you use. And if not configured correctly, this can burn your SOL very quickly. Make sure you keep an eye on your SOL balance while tuning this strategy to not lose too much to the gas. Flashloan is also a good option to enable with this strategy if you don't have enough fund. See an example of it from a bot user: ![](https://docs.solanamevbot.com/home/~gitbook/image?url=https%3A%2F%2F3811539071-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fx2rxpD03KDvMgJqIkdla%252Fuploads%252FTq7AJzbMR5LAeolr9zat%252FScreenshot_2024-07-27_at_11.55.11_PM.webp%3Falt%3Dmedia%26token%3D2147969d-f4a5-448b-ab3f-b2a8c3ad6719&width=768&dpr=4&quality=100&sign=55908f1c&sv=2) **Example**: [`Super spam config`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations/config-examples#super-spam-config-its-using-helius-and-read-rpc-and-helius--quickndoe-as-send-rpcs.-this-is-an-exam) in [Config examples](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations/config-examples) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy#high-fee-backrun-strategy) High fee backrun strategy ----------------------------------------------------------------------------------------------------------------------------------- This is a high risk strategy, if not configured correctly you may burn a lot of SOL through gas fee. Make sure you know what you are doing and keep an eye on it while tuning it. With this strategy, you want to be the first one to catch an opportunity when it appears, using a very high priority fee. You want to use the [BACKRUN\_STRATEGY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#backrun_strategy) with this, as that's the fastest way to see the opportunity. This [82 SOL arb](https://solscan.io/tx/39u6y9isQvL776ZpFri9DRQxkckTdE36adwYnFT9QSv9PBCc7KWBy3Pf5y2Emy8bYwfKNMi98tg7RMDezGqHLFNL) is captured with this strategy. It pays 0.5 SOL as gas fee. This strategy has the highest requirements for all of your hardware and RPC setups. You want as little latency as possible everywhere. You want minimal ping from your server to your RPC, minimal time to find the opportunity, minimal time for Jupiter to update the price info, minimal time from sending to landing the transaction. You may also want to enable simulation to minimize the potential failed ones. With this config, you want to set [`SPAM_RESTRICT_LEVEL`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#spam_restrict_level) to a none 0 value to reduce the number of failed transactions that landed too far away from when you send them, and likely sending it through multiple different RPCs to maximize your chance of landing it fast. With this strategy you need to enable simulation to reduce failed tx, [ENABLE\_JITO\_RPC](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_jito_rpc) is also a very useful config to enable if you are using a jito rpc. [`SPAM_FEE_BPS`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#spam_fee_bps) is another config that can help you land here, so you can pay more fee for potential high profit tx. When choosing RPC for sending, make sure you use the tool [https://github.com/Cetipoo/solana-rpc-benchmark-tool](https://github.com/Cetipoo/solana-rpc-benchmark-tool) to test if your RPC is good enough to land a transaction within 3 slots with a high enough priority fee and a compute unit limit that is close to what you send. If your RPC cannot do that, this strategy is not for you. You also don't want to set too many different trade sizes, as you may send multiple tx for the same opportunity, and waste a lot of gas on failed ones as most likely only one of them can land at most. BloXroute is also good for landing tx. You can try set [`ENABLE_BLOXROUTE`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_bloxroute) to `true` with this strategy. Do note it takes an additional 0.0005 SOL fee for each successful landed tx. **Example**: `High fee backrun config` in [Config examples](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations/config-examples) . This is the exact config that captured the [82 SOL arb](https://solscan.io/tx/39u6y9isQvL776ZpFri9DRQxkckTdE36adwYnFT9QSv9PBCc7KWBy3Pf5y2Emy8bYwfKNMi98tg7RMDezGqHLFNL) . [PreviousPerformance tuning](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning) [NextTrouble shooting](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting) Last updated 8 months ago * [Jito-only strategy](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy#jito-only-strategy) * [Jito-only strategy with a lot of IPs](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy#jito-only-strategy-with-a-lot-of-ips) * [Catch-all strategy with a lot of mints](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy#catch-all-strategy-with-a-lot-of-mints) * [Spam strategy](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy#spam-strategy) * [Focused strategy with a few selected mints](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy#focused-strategy-with-a-few-selected-mints) * [Super spam strategy with only 1 or 2 mints](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy#super-spam-strategy-with-only-1-or-2-mints) * [High fee backrun strategy](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy#high-fee-backrun-strategy) --- # Trouble shooting | SolanaMevBot ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#the-bot-stucks-on-waiting-for-jupiter-connection-to-http-0.0.0.0-18080-or-you-are-seeing-jupiter-swa) The bot stucks on Waiting for Jupiter connection to [http://0.0.0.0:18080/](http://0.0.0.0:18080/) , or you are seeing jupiter-swap-api failed with `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. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#im-seeing-too-many-requests-or-statuscode-429) I'm seeing `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. Most free RPCs are not good enough for the bot to run. You need a paid RPC to run the bot. If you don't have yellowstone url set, try reduce the number of intermedium mints you use. I would suggest to go from 1-2 mints to test ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#price_tracker.update_prices-failed-with-missing-decimals-for-usdc) price\_tracker.update\_prices failed with: missing decimals for USDC You may see this error if you exclude USDC, it can be safely ignored. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#error-binding-to-0.0.0.0-18080-error-creating-server-listener-address-already-in-use-os-error-98) 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 Copy chmod +x kill-jup.sh ./kill-jup.sh If it still not resolved, run It should output a number for you, let's say it's 11020, then run ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#im-seeing-a-lot-of-generated-transaction-is-too-large) I'm seeing a lot of `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, you can try 1. Use a smaller `JUP_MAX_ACCOUNTS` 2. Use 2hop and `USE_DIRECT_ROUTE_ONLY: true` 3. Remove memo 4. Don't close your token accounts, each token without a token account in your wallet will make this worse. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#im-not-seeing-any-opportunities-show-up-in-my-log) I'm not seeing any opportunities show up in my log There are multiple cases where this can happen. 1. 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. 2. 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. 3. Check your minProfit, opportunities will drop as you raise the value of minProfit A LOT. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#im-seeing-a-lot-of-opportunities-but-nothing-lands) 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 tuning](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning) explains 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](https://docs.solanamevbot.com/home/fundamentals/bot-configurations#compute_unit_price) in your .env file, or set [PRIORITY\_FEE\_PERCENTILE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#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](https://github.com/Cetipoo/solana-rpc-benchmark-tool) to test different rpcs to help you find the best one to use. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#error-while-loading-shared-libraries-libssl.so.3) 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. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#my-jupiter-quote-time-is-high) My jupiter quote time is high If you have [`USE_DIRECT_ROUTE_ONLY`](https://docs.solanamevbot.com/home/fundamentals/bot-configurations#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`](https://docs.solanamevbot.com/home/fundamentals/bot-configurations#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. 1. Use a machine with more CPU cores. This may be the most straight forward one, jupiter api is very heavy on CPU usage. 2. Reduce the number of intermedium mints used. This is mostly helpful when you have [`USE_DIRECT_ROUTE_ONLY`](https://docs.solanamevbot.com/home/fundamentals/bot-configurations#use_direct_route_only) set to false. As the more mints you have, the more time jupiter needs to find the best route. 3. Increase [`PROCESS_DELAY`](https://docs.solanamevbot.com/home/fundamentals/bot-configurations#process_delay) . [`PROCESS_DELAY`](https://docs.solanamevbot.com/home/fundamentals/bot-configurations#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. 4. Reduce the number of trade sizes you use(or [`TRADE_RANGE_COUNT`](https://docs.solanamevbot.com/home/fundamentals/bot-configurations#trade_range) 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. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#profit-calculation-error) 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. ![](https://docs.solanamevbot.com/home/~gitbook/image?url=https%3A%2F%2F3811539071-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fx2rxpD03KDvMgJqIkdla%252Fuploads%252Fb6xHRNyjoSb23uMkDiko%252Fimage.webp%3Falt%3Dmedia%26token%3D74de0b4a-66b1-47c8-aefe-dc921cb259bd&width=768&dpr=4&quality=100&sign=5ea4cc5&sv=2) ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#error-code-6001-or-1771) Error code 6001 or 1771 This is from Jup and basically means your transaction don't have any profit. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#computational-budget-exceeded-error) Computational Budget Exceeded Error Most of the time you can ignore this. This can happen when your quote price is too far away from what it landed onchain. The default compute unit limit is set to make sure 95% of your request succeed without this error. If you want to adjust this you can tweak [`COMPUTE_UNIT_LIMIT_MULTIPLIER`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#compute_unit_limit_multiplier) ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#dashboard-shows-im-making-profit-but-im-actually-losing-money-when-i-add-up-my-sol) 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: [https://sol-incinerator.com/](https://sol-incinerator.com/) [https://eject.solworks.dev/](https://eject.solworks.dev/) [https://app.step.finance/en/account-tools](https://app.step.finance/en/account-tools) [PreviousBot Strategy](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy) [NextReleases](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases) Last updated 9 months ago * [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](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#the-bot-stucks-on-waiting-for-jupiter-connection-to-http-0.0.0.0-18080-or-you-are-seeing-jupiter-swa) * [I'm seeing Too Many Requests, or "statusCode": 429](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#im-seeing-too-many-requests-or-statuscode-429) * [price\_tracker.update\_prices failed with: missing decimals for USDC](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#price_tracker.update_prices-failed-with-missing-decimals-for-usdc) * [error binding to 0.0.0.0:18080: error creating server listener: Address already in use (os error 98)](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#error-binding-to-0.0.0.0-18080-error-creating-server-listener-address-already-in-use-os-error-98) * [I'm seeing a lot of Generated transaction is too large](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#im-seeing-a-lot-of-generated-transaction-is-too-large) * [I'm not seeing any opportunities show up in my log](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#im-not-seeing-any-opportunities-show-up-in-my-log) * [I'm seeing a lot of opportunities, but nothing lands](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#im-seeing-a-lot-of-opportunities-but-nothing-lands) * [error while loading shared libraries: libssl.so.3](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#error-while-loading-shared-libraries-libssl.so.3) * [My jupiter quote time is high](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#my-jupiter-quote-time-is-high) * [Profit calculation error](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#profit-calculation-error) * [Error code 6001 or 1771](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#error-code-6001-or-1771) * [Computational Budget Exceeded Error](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#computational-budget-exceeded-error) * [Dashboard shows I'm making profit but I'm actually losing money when I add up my sol](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#dashboard-shows-im-making-profit-but-im-actually-losing-money-when-i-add-up-my-sol) Copy pid=$(pgrep -f jupiter-swap-api) echo $pid Copy kill 11020 --- # Getting started | SolanaMevBot Technically there's no minimum requirement for SOL amount to use the bot. But it's recommended to have at least 0.2 SOL when you follow this guide to setup a demo config. Step1: Get a private RPC[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/getting-started#step1-get-a-private-rpc) Make sure you find a private RPC, public ones won't work for this bot. Step 2: Get a Linux machine[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/getting-started#step-2-get-a-linux-machine) The bot runs on linux, so you need to either rent one or use your own. The recommended hardware is 4 core/32GB RAM at least. To be able to run the bot smoothly, recommend running with Ubuntu 22. You will run into issues with Ubuntu 20. WSL on windows is known to have issue and not working well with the bot. Step 3: Download and unzip[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/getting-started#step-3-download-and-unzip) **Download** First ssh into your Linux machine, then download the zip file for the latest release. The latest release can be found here: [Releases](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases) Create a new folder for the bot Copy mkdir bot cd bot Install wget Copy sudo apt update sudo apt install wget Download using wget. Note you should replace the link with the one in the latest release: Copy wget https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.23.zip Install unzip Copy sudo apt update sudo apt install unzip Unzip the file(replace the file name with the one you downloaded) Copy unzip solana-mev-bot-1.3.23.zip Upgrade to the latest version Copy ./upgrade.sh Check if everything is unzipped correctly Copy ls You should see at least the following files after running `ls` `config.yaml.example` `download` `kill-jup.sh` `bot` `run.sh` `debug.sh` `jupiter-swap-api` Step 4: Config and Run[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/getting-started#step-4-config-and-run) **Prepare** Install the needed packages Copy sudo apt-get install lsof **Setup** You need to make a few changes to the config files before running the bot Create a new file called `config.yaml`, copy the config from [Demo account config](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations/config-examples#demo-account-config-the-demo-account-is-using-a-jito-only-strategy.-with-this-strategy-you-wont-land) and fill in the needed fields. Make sure your wallet has the amount of SOL/USDC/USDT needed, or remove the according config as you need. **It's highly recommended to start with the demo account config and only change the trade size as you see fit. A lot of things can go wrong and cause you to land nothing if you try to setup a config yourself.** Edit your config.yaml file. You can use either [vim](https://www.freecodecamp.org/news/vim-beginners-guide/) or [nano](https://linuxize.com/post/how-to-use-nano-text-editor/) Copy nano config.yaml When using nano, at the bottom of the window, there is a list of the most basic command shortcuts to use with the nano editor. ![](https://docs.solanamevbot.com/home/~gitbook/image?url=https%3A%2F%2F3811539071-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fx2rxpD03KDvMgJqIkdla%252Fuploads%252FwAAGf2Eif1cj73QYUZNP%252FScreen%2520Shot%25202024-05-22%2520at%252011.45.31%2520PM.png%3Falt%3Dmedia%26token%3D0dc9cb02-37f7-498c-a20d-e30dece3c51d&width=300&dpr=4&quality=100&sign=f1671032&sv=2) All commands are prefixed with either `^` or `M` characters. The caret symbol (`^`) represents the `Ctrl` key. For example, the `^X` commands mean to press the `Ctrl` and `X` keys at the same time. The letter `M` represents the `Alt` key. `config.yaml.example` file is an example file to tell you how to set all the configs. DO NOT USE IT AS YOUR CONFIG IT WON'T WORK. Last step, give permissions to the bot to run Copy chmod +x * Now you are all set to run! To run the bot, simply do the following: Copy ./run.sh Then you should see the bot setup everything and start running! You can find a more detailed configuration guide in Bot configuration and [Performance tuning](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning) . Join the [Discord](https://discord.gg/kxANRVSz2S) to learn how to optimize your setup with other users! Step 5: Run bot in background[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/getting-started#step-5-run-bot-in-background) When you ssh into a remote machine and run the bot, once you close the terminal, the bot will stop running. This section shows you how to run it even when your terminal is closed. Create a screen session, called bot Copy screen -S bot Now you are in a screen session. To verify, run Copy screen -ls You should see something like the following: Copy There are screens on: 1059895.bot (05/23/24 03:11:34) (Attached) Attached means you are now in this screen session. Now you can run the bot as shown above, which will run the bot inside the bot session, and it won't stop running even if you close the terminal! Copy ./run.sh Once you close your terminal and reconnect, run the following to open the previous created session. Copy screen -r bot To fully close it, run Copy screen -X -S bot quit Make sure you don't have 2 sessions both running the bot together, or the bot will fail to run. To exit a screen session while you are attached, press ctrl+a, then d Step 6: Join Discord[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/getting-started#step-6-join-discord) Join our discord to learn how to boost your profit! [https://discord.gg/solanamevbot](https://discord.gg/solanamevbot) Step 7: Handle your firewall rules properly[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/getting-started#step-7-handle-your-firewall-rules-properly) The bot will start a local Jup, with 18080 port by default. If you do not setup rules properly other spammer may steal your endpoint and use it for free. Here's an example(which will reset on restart) [PreviousHow this bot work](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/how-this-bot-work) [NextBot configurations](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations) Last updated 9 months ago Copy sudo iptables -I INPUT -p tcp --dport 18080 ! -i lo -j DROP --- # Sending Vender examples | SolanaMevBot [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#fast-from-circular.fi) Fast from [Circular.fi](https://www.circular.bot/ref/SMB) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- To use set `auth_value` to your circular key in the config here. A free account can get you 25 TPS. ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#regions) Regions Everywhere (Send to our Fast Engine closest to you) * fast.circular.fi Amsterdam (Send to our Amsterdam Fast Engine) * ams.fast.circular.fi New York (Send to our New York Fast Engine) * ny.fast.circular.fi Example with SolanaMevBot specific endpoint, you need to tip at least 7500 and use `no_failure_mode = true` to use this endpoint: Copy [[sending_venders.sending_vender]] enabled = true tip_amount = { strategy = "Random", from = 7_500, to = 7_500, count = 1 } compute_unit_price = { strategy = "Random", from = 1031, to = 2055, count = 1 } urls = [\ "https://fast.circular.fi/transactions/no-failure/smb",\ ] auth_header = "x-api-key" auth_value = "xxx" tip_accounts = [\ "FAST3dMFZvESiEipBvLSiXq3QCV51o3xuoHScqRU6cB6",\ "FASTHPW6akdGh9PFSdhMTbCuGkCSX7LsUjjnaB2RTQ4v",\ "FASTYKWXRfAoty7SQCM1mGVrmPUyyNcF4tc3DUkLDAu9",\ "FASTPB76TxKPMZ7Q29m8v4zJn8gUjbWyvTEQaaxhwN7M",\ "FASTs6ctgbsuZegMzUs4DPUYhRSZUPCjgCVnttHbpQAp",\ "FASTYmSidNfLwdwiQEhCTtzghxEtaipeNSDSwh9xDPs3",\ "FASTCKnwwY6iL3CknRgg3Zqir7jeagDDhxSnBQQy5a1C",\ "FASTKL1AamNKrwnvbKwo4PU8434BBdqVrTtugM6oDU71"\ ] no_failure_mode = true sending_strategy = "AllAtOnce" # AllAtOnce or OneByOne Example with general endpoint: [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#astralane) [Astralane](https://astralane.io/) ------------------------------------------------------------------------------------------------------------------------------------------------ Bot provides a default key for astralane with a shared rate limit, and only usable with `no_failure_mode = true`. If you want to use your own key you can append it at the end of the url with `api-key=` and it will override the default key. ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#regions-1) Regions * Frankfurt: [http://fr.gateway.astralane.io/iris](http://fr.gateway.astralane.io/iris?api-key=xxxx) * San Francisco: [http://lax.gateway.astralane.io/iris](https://lax.gateway.astralane.io/iris?api-key=xxxx) * Tokyo: [http://jp.gateway.astralane.io/iris](http://jp.gateway.astralane.io/iris?api-key=xxxx) * New York: [http://ny.gateway.astralane.io/iris](http://ny.gateway.astralane.io/iris?api-key=xxxx) * Amsterdam: [http://ams.gateway.astralane.io/iris](http://ams.gateway.astralane.io/iris?api-key=xxxx) [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#temporal) [Temporal](https://use.temporal.xyz/) -------------------------------------------------------------------------------------------------------------------------------------------------- To use update the urls to your region and add your key to the url after `c=` ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#regions-2) Regions PITT: [`http://pit1.nozomi.temporal.xyz/?c=`](http://pit1.nozomi.temporal.xyz/?c=) TYO: [`http://tyo1.nozomi.temporal.xyz/?c=`](http://fra2.nozomi.temporal.xyz/?c=) SG: [`http://sgp1.nozomi.temporal.xyz/?c=`](http://fra2.nozomi.temporal.xyz/?c=) EWR: [`http://ewr1.nozomi.temporal.xyz/?c=`](http://ewr1.nozomi.temporal.xyz/?c=) AMS: [`http://ams1.nozomi.temporal.xyz/?c=`](http://ams1.nozomi.temporal.xyz/?c=) FRA: [`http://fra2.nozomi.temporal.xyz/?c=`](http://fra2.nozomi.temporal.xyz/?c=) [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#id-0slot) [0slot](https://0slot.trade/docs.php) -------------------------------------------------------------------------------------------------------------------------------------------------- ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#regions-3) Regions * New York: ny.0slot.trade * Frankfurt: de.0slot.trade * Amsterdam: ams.0slot.trade * Tokyo: jp.0slot.trade * Los Angeles: la.0slot.trade [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#nextblock) [Nextblock](https://nextblock.io/auth?refCode=smb-onchain) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#regions-4) Regions * fra: [http://fra.nextblock.io](http://fra.nextblock.io/) * nyc: [http://ny.nextblock.io](http://ny.nextblock.io/) * slc: [http://slc.nextblock.io](http://slc.nextblock.io/) * tokyo: [http://tokyo.nextblock.io](http://tokyo.nextblock.io/) * london: [http://london.nextblock.io](http://london.nextblock.io/) [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#helius) [Helius](https://www.helius.dev/docs/sending-transactions/sender#designated-tip-accounts-mainnet-beta) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#regions-5) Regions * http://slc-sender.helius-rpc.com/fast # Salt Lake City * http://ewr-sender.helius-rpc.com/fast # Newark * http://lon-sender.helius-rpc.com/fast # London * http://fra-sender.helius-rpc.com/fast # Frankfurt * http://ams-sender.helius-rpc.com/fast # Amsterdam * http://sg-sender.helius-rpc.com/fast # Singapore * http://tyo-sender.helius-rpc.com/fast # Tokyo [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#flashblock) [Flashblock](https://flashblock.trade/) ------------------------------------------------------------------------------------------------------------------------------------------------------ [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#stellium) [Stellium](https://docs.stellium.dev/products/fast-tx-landing) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#regions-6) Regions [http://ewr1.flashrpc.com/$KEY http://ams1.flashrpc.com/$KEY http://fra1.flashrpc.com/$KEY http://lhr1.flashrpc.com/$KEY http://tyo1.flashrpc.com/$KEY http://sin1.flashrpc.com/$KEY http://dub1.flashrpc.com/$KEY](http://ewr1.flashrpc.com/$KEYhttp://ams1.flashrpc.com/$KEYhttp://fra1.flashrpc.com/$KEYhttp://lhr1.flashrpc.com/$KEYhttp://tyo1.flashrpc.com/$KEYhttp://sin1.flashrpc.com/$KEYhttp://dub1.flashrpc.com/$KEY) [PreviousConfig examples](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/config-examples) [NextCircular config](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/circular-config) Last updated 14 days ago * [Fast from Circular.fi](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#fast-from-circular.fi) * [Regions](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#regions) * [Astralane](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#astralane) * [Regions](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#regions-1) * [Temporal](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#temporal) * [Regions](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#regions-2) * [0slot](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#id-0slot) * [Regions](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#regions-3) * [Nextblock](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#nextblock) * [Regions](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#regions-4) * [Helius](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#helius) * [Regions](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#regions-5) * [Flashblock](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#flashblock) * [Stellium](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#stellium) * [Regions](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#regions-6) Copy [[sending_venders.sending_vender]] enabled = true tip_amount = { strategy = "Random", from = 1_000_000, to = 1_000_000, count = 1 } compute_unit_price = { strategy = "Random", from = 1031, to = 2055, count = 1 } urls = [\ "https://fast.circular.fi/transactions",\ ] auth_header = "x-api-key" auth_value = "xxx" tip_accounts = [\ "FAST3dMFZvESiEipBvLSiXq3QCV51o3xuoHScqRU6cB6",\ "FASTHPW6akdGh9PFSdhMTbCuGkCSX7LsUjjnaB2RTQ4v",\ "FASTYKWXRfAoty7SQCM1mGVrmPUyyNcF4tc3DUkLDAu9",\ "FASTPB76TxKPMZ7Q29m8v4zJn8gUjbWyvTEQaaxhwN7M",\ "FASTs6ctgbsuZegMzUs4DPUYhRSZUPCjgCVnttHbpQAp",\ "FASTYmSidNfLwdwiQEhCTtzghxEtaipeNSDSwh9xDPs3",\ "FASTCKnwwY6iL3CknRgg3Zqir7jeagDDhxSnBQQy5a1C",\ "FASTKL1AamNKrwnvbKwo4PU8434BBdqVrTtugM6oDU71"\ ] no_failure_mode = false sending_strategy = "AllAtOnce" # AllAtOnce or OneByOne Copy [[sending_venders.sending_vender]] enabled = true tip_amount = { strategy = "Random", from = 10_000, to = 10_000, count = 1 } compute_unit_price = { strategy = "Random", from = 1031, to = 2055, count = 1 } urls = [\ "http://ny.gateway.astralane.io/iris", \ ] tip_accounts = [\ "astrazznxsGUhWShqgNtAdfrzP2G83DzcWVJDxwV9bF",\ "astra4uejePWneqNaJKuFFA8oonqCE1sqF6b45kDMZm",\ "astra9xWY93QyfG6yM8zwsKsRodscjQ2uU2HKNL5prk",\ "astraRVUuTHjpwEVvNBeQEgwYx9w9CFyfxjYoobCZhL",\ ] no_failure_mode = true sending_strategy = "AllAtOnce" # AllAtOnce or OneByOne Copy [[sending_venders.sending_vender]] enabled = true tip_amount = { strategy = "Random", from = 1_000_000, to = 1_000_000, count = 1 } compute_unit_price = { strategy = "Random", from = 1031, to = 2055, count = 1 } urls = [\ "https://ewr1.nozomi.temporal.xyz/?c=YOUR_API_KEY", # Put your key here\ ] tip_accounts = [\ "TEMPaMeCRFAS9EKF53Jd6KpHxgL47uWLcpFArU1Fanq",\ "noz3jAjPiHuBPqiSPkkugaJDkJscPuRhYnSpbi8UvC4",\ "noz3str9KXfpKknefHji8L1mPgimezaiUyCHYMDv1GE",\ "noz6uoYCDijhu1V7cutCpwxNiSovEwLdRHPwmgCGDNo",\ "noz9EPNcT7WH6Sou3sr3GGjHQYVkN3DNirpbvDkv9YJ",\ "nozc5yT15LazbLTFVZzoNZCwjh3yUtW86LoUyqsBu4L",\ "nozFrhfnNGoyqwVuwPAW4aaGqempx4PU6g6D9CJMv7Z",\ "nozievPk7HyK1Rqy1MPJwVQ7qQg2QoJGyP71oeDwbsu",\ "noznbgwYnBLDHu8wcQVCEw6kDrXkPdKkydGJGNXGvL7",\ "nozNVWs5N8mgzuD3qigrCG2UoKxZttxzZ85pvAQVrbP",\ "nozpEGbwx4BcGp6pvEdAh1JoC2CQGZdU6HbNP1v2p6P",\ "nozrhjhkCr3zXT3BiT4WCodYCUFeQvcdUkM7MqhKqge",\ "nozrwQtWhEdrA6W8dkbt9gnUaMs52PdAv5byipnadq3",\ "nozUacTVWub3cL4mJmGCYjKZTnE9RbdY5AP46iQgbPJ",\ "nozWCyTPppJjRuw2fpzDhhWbW355fzosWSzrrMYB1Qk",\ "nozWNju6dY353eMkMqURqwQEoM3SFgEKC6psLCSfUne",\ "nozxNBgWohjR75vdspfxR5H9ceC7XXH99xpxhVGt3Bb"\ ] no_failure_mode = false sending_strategy = "AllAtOnce" # AllAtOnce or OneByOne Copy [[sending_venders.sending_vender]] enabled = true tip_amount = { strategy = "Random", from = 1_000_000, to = 1_000_000, count = 1 } compute_unit_price = { strategy = "Random", from = 1031, to = 2055, count = 1 } urls = [\ "https://ny.0slot.trade?api-key=YOUR_API_KEY", # Put your key here\ ] tip_accounts = [\ "6fQaVhYZA4w3MBSXjJ81Vf6W1EDYeUPXpgVQ6UQyU1Av",\ "4HiwLEP2Bzqj3hM2ENxJuzhcPCdsafwiet3oGkMkuQY4",\ "7toBU3inhmrARGngC7z6SjyP85HgGMmCTEwGNRAcYnEK",\ "8mR3wB1nh4D6J9RUCugxUpc6ya8w38LPxZ3ZjcBhgzws",\ "6SiVU5WEwqfFapRuYCndomztEwDjvS5xgtEof3PLEGm9",\ "TpdxgNJBWZRL8UXF5mrEsyWxDWx9HQexA9P1eTWQ42p",\ "D8f3WkQu6dCF33cZxuAsrKHrGsqGP2yvAHf8mX6RXnwf",\ "GQPFicsy3P3NXxB5piJohoxACqTvWE9fKpLgdsMduoHE",\ "Ey2JEr8hDkgN8qKJGrLf2yFjRhW7rab99HVxwi5rcvJE",\ "4iUgjMT8q2hNZnLuhpqZ1QtiV8deFPy2ajvvjEpKKgsS",\ "3Rz8uD83QsU8wKvZbgWAPvCNDU6Fy8TSZTMcPm3RB6zt"\ ] no_failure_mode = false sending_strategy = "AllAtOnce" # AllAtOnce or OneByOne Copy [[sending_venders.sending_vender]] enabled = false tip_amount = { strategy = "Random", from = 1_000_000, to = 1_000_000, count = 1 } compute_unit_price = { strategy = "Random", from = 1031, to = 2055, count = 1 } urls = [\ "http://ny.nextblock.io/api/v2/submit",\ ] auth_header = "authorization" auth_value = "xxxx" tip_accounts = [\ "NEXTbLoCkB51HpLBLojQfpyVAMorm3zzKg7w9NFdqid",\ "nextBLoCkPMgmG8ZgJtABeScP35qLa2AMCNKntAP7Xc",\ "NextbLoCkVtMGcV47JzewQdvBpLqT9TxQFozQkN98pE",\ "NexTbLoCkWykbLuB1NkjXgFWkX9oAtcoagQegygXXA2",\ "NeXTBLoCKs9F1y5PJS9CKrFNNLU1keHW71rfh7KgA1X",\ "NexTBLockJYZ7QD7p2byrUa6df8ndV2WSd8GkbWqfbb",\ "neXtBLock1LeC67jYd1QdAa32kbVeubsfPNTJC1V5At",\ "nEXTBLockYgngeRmRrjDV31mGSekVPqZoMGhQEZtPVG",\ ] no_failure_mode = false sending_strategy = "AllAtOnce" # AllAtOnce or OneByOne Copy [[sending_venders.sending_vender]] enabled = true tip_amount = { strategy = "Random", from = 200_000, to = 200_000, count = 1 } compute_unit_price = { strategy = "Random", from = 1031, to = 2055, count = 1 } urls = [\ "http://ewr-sender.helius-rpc.com/fast",\ ] tip_accounts = [\ "4ACfpUFoaSD9bfPdeu6DBt89gB6ENTeHBXCAi87NhDEE",\ "D2L6yPZ2FmmmTKPgzaMKdhu6EWZcTpLy1Vhx8uvZe7NZ",\ "9bnz4RShgq1hAnLnZbP8kbgBg1kEmcJBYQq3gQbmnSta",\ "5VY91ws6B2hMmBFRsXkoAAdsPHBJwRfBht4DXox3xkwn",\ "2nyhqdwKcJZR2vcqCyrYsaPVdAnFoJjiksCXJ7hfEYgD",\ "2q5pghRs6arqVjRvT5gfgWfWcHWmw1ZuCzphgd5KfWGJ",\ "wyvPkWjVZz1M8fHQnMMCDTQDbkManefNNhweYk5WkcF",\ "3KCKozbAaF75qEU33jtzozcJ29yJuaLJTy2jFdzUY8bT",\ "4vieeGHPYPG2MmyPRcYjdiDmmhN3ww7hsFNap8pVN3Ey",\ "4TQLFNWK8AovT1gFvda5jfw2oJeRMKEmw7aH6MGBJ3or",\ ] no_failure_mode = false sending_strategy = "AllAtOnce" # AllAtOnce or OneByOne request_params = { skipPreflight = true } Copy [[sending_venders.sending_vender]] enabled = true enable_submit_batch = true tip_amount = { strategy = "Random", from = 1000000, to = 1000000, count = 1 } compute_unit_price = { strategy = "Random", from = 1031, to = 2055, count = 1 } urls = ["http://ny.flashblock.trade/api/v2/submit-batch"] auth_header = "authorization" auth_value = "xxx" tip_accounts = [\ "FLaShB3iXXTWE1vu9wQsChUKq3HFtpMAhb8kAh1pf1wi",\ "FLashhsorBmM9dLpuq6qATawcpqk1Y2aqaZfkd48iT3W",\ "FLaSHJNm5dWYzEgnHJWWJP5ccu128Mu61NJLxUf7mUXU",\ "FLaSHR4Vv7sttd6TyDF4yR1bJyAxRwWKbohDytEMu3wL",\ "FLASHRzANfcAKDuQ3RXv9hbkBy4WVEKDzoAgxJ56DiE4",\ "FLasHstqx11M8W56zrSEqkCyhMCCpr6ze6Mjdvqope5s",\ "FLAShWTjcweNT4NSotpjpxAkwxUr2we3eXQGhpTVzRwy",\ "FLasHXTqrbNvpWFB6grN47HGZfK6pze9HLNTgbukfPSk",\ "FLAshyAyBcKb39KPxSzXcepiS8iDYUhDGwJcJDPX4g2B",\ "FLAsHZTRcf3Dy1APaz6j74ebdMC6Xx4g6i9YxjyrDybR",\ ] no_failure_mode = false sending_strategy = "AllAtOnce" # AllAtOnce or OneByOne Copy [[sending_venders.sending_vender]] enabled = true tip_amount = { strategy = "Random", from = 1_000_000, to = 1_000_000, count = 1 } compute_unit_price = { strategy = "Random", from = 1031, to = 2055, count = 1 } urls = [\ "http://ewr1.flashrpc.com/$KEY", \ ] tip_accounts = [\ "ste11JV3MLMM7x7EJUM2sXcJC1H7F4jBLnP9a9PG8PH",\ "ste11MWPjXCRfQryCshzi86SGhuXjF4Lv6xMXD2AoSt",\ "ste11p5x8tJ53H1NbNQsRBg1YNRd4GcVpxtDw8PBpmb",\ "ste11p7e2KLYou5bwtt35H7BM6uMdo4pvioGjJXKFcN",\ "ste11TMV68LMi1BguM4RQujtbNCZvf1sjsASpqgAvSX"\ ] no_failure_mode = false sending_strategy = "AllAtOnce" # AllAtOnce or OneByOne --- # Common workflow | SolanaMevBot Upgrade to latest version[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/common-workflow#upgrade-to-latest-version) The latest versino of the bot usually contains bug fixes and new features. So it's important to keep your bot up to date. First ssh into your Linux machine, cd into the folder of the bot, then download the zip file for the latest release. The latest release can be found here: [Releases](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases) Cd into the bot folder Copy cd bot Give permission to the upgrade script Copy chmod +x upgrade.sh Run the upgrade script Copy ./upgrade.sh Restart your bot! Downgrade to a certain version[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/common-workflow#downgrade-to-a-certain-version) This only works after version 0.3.7 Similiar to upgrade, you just call the script with the version you want to go to. First ssh into your Linux machine, cd into the folder of the bot, then download the zip file for the latest release. The latest release can be found here: [Releases](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases) Cd into the bot folder Copy cd bot Give permission to the upgrade script Copy chmod +x upgrade.sh Run the upgrade script with the version you want to download. for example 0.3.8 Copy ./upgrade.sh 0.3.8 Restart your bot! Run bot in background[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/common-workflow#run-bot-in-background) When you ssh into a remote machine and run the bot, once you close the terminal, the bot will stop running. This section shows you how to run it even when your terminal is closed. Create a screen session, called bot Copy screen -S bot Now you are in a screen session. To verify, run Copy screen -ls You should see something like the following: Copy There are screens on: 1059895.bot (05/23/24 03:11:34) (Attached) Attached means you are now in this screen session. Now you can run the bot as shown above, which will run the bot inside the bot session, and it won't stop running even if you close the terminal! Copy ./run.sh Once you close your terminal and reconnect, run the following to open the previous created session. Copy screen -r bot To fully close it, run Copy screen -X -S bot quit Make sure you don't have 2 sessions both running the bot together, or the bot will fail to run. To exit a screen session while you are attached, press ctrl+a, then d Run multiple bots with one Jupiter API[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/common-workflow#run-multiple-bots-with-one-jupiter-api) There are a few reasons that you may want to do this. As running Jupiter API is pretty expensive, you may want to only run one and connect multiple machines to the same Jupiter API. Jupiter API runs on port 18080, you can connect to it from other machine by setting the `JUPITER_URL=http://ip_of_your_machine:18080` on your machines that does not run Jupiter. If you want to us a machine to just host the Jupiter API, and not run any bot on the machine, you can run `./run-jup.sh` on the machine, which will just run Jupiter API for you. You can then use the Jupiter endpoint from other machines. If you want to run multiple bots on the same machine with just one Jupiter API, you can run one bot as normal, and set `DISABLE_LOCAL_JUPITER=true` for all the other bots. This way only one Jupiter API will be run on your machine. Save log to file[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/common-workflow#save-log-to-file) Copy ./run.sh | tee bot.log Migrate from 0.2.x to 0.3.x[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/common-workflow#migrate-from-0.2.x-to-0.3.x) Give permission to the upgrade script Run the upgrade script Give permission to everything Run the migrate script Then a `config.yaml` file should be automatically generated for you. Double check the config inside to make sure everything is good, then you have finished the migration! You can optionally remove `.env` and `base-mint.json` file after fully migrated. Upgrade/Downgrade Jupiter API version[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/common-workflow#upgrade-downgrade-jupiter-api-version) You can run the upgrade-jup.sh script with a specific version you want to download and use You can find all the Jupiter API versions here: [https://github.com/jup-ag/jupiter-swap-api/releases](https://github.com/jup-ag/jupiter-swap-api/releases) Example: Use multiple IPs on your machine[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/common-workflow#use-multiple-ips-on-your-machine) **This is just an example and there maybe better ways to do this.** First you should ask your server provider to give you additional ips to your server. Once you have that, you can do the following to utilize all of them when sending through jito. **Identify the Network Interface Name** The network interface name (`eno1`, `eth0`, etc.) can be identified using the following command: This will list all network interfaces. Look for the active interface connected to your network (e.g., `state UP`). Example: **Add an Additional IP Address Temporarily** Replace eno1 with whatever your interface name is Verify ip address is added correctly: Install ipset This will require you to re-run this on restart. Or you can search for how to add it permanently with Netplan. Then set ipset for all jito regions Finally set iptable rules to route through each ip one by one. You should use your own ips here to replace `("1.1.1.1" "2.2.2.2" "3.3.3.3")` Then you are all set! To verify, you can turn on jito log, and you should see much less jito rate limit response. Do note you need to also enable [`USE_SEPARATE_TIP_ACCOUNT`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_separate_tip_account) for it to work properly. Switch between different config files[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/common-workflow#switch-between-different-config-files) You can pass in the config file when you execute run.sh For example, if you create a config named `config.jito.yaml`. You can use that by doing this: [PreviousConfig examples](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations/config-examples) [NextPerformance tuning](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning) Last updated 9 months ago Copy chmod +x upgrade.sh Copy ./upgrade.sh Copy chmod +x * Copy ./migrate Copy ./upgrade-jup.sh 6.0.34 Copy ip link show Copy 2: eno1: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 Copy sudo ip addr add x.x.x.x/32 dev eno1 Copy ip addr show dev eno1 Copy sudo apt install ipset Copy #!/bin/bash # Define URLs and their corresponding ipsets declare -A URL_IPSETS=( ["amsterdam.mainnet.block-engine.jito.wtf"]="amsterdam" ["frankfurt.mainnet.block-engine.jito.wtf"]="frankfurt" ["ny.mainnet.block-engine.jito.wtf"]="ny" ["tokyo.mainnet.block-engine.jito.wtf"]="tokyo" ["slc.mainnet.block-engine.jito.wtf"]="slc" ) # Loop through each URL for URL in "${!URL_IPSETS[@]}"; do IPSET_NAME="${URL_IPSETS[$URL]}" # Ensure the ipset exists if ! sudo ipset list "$IPSET_NAME" &>/dev/null; then echo "Creating ipset: $IPSET_NAME" sudo ipset create "$IPSET_NAME" hash:ip fi # Ping the URL to ensure it's reachable echo "Pinging $URL..." PING_RESULT=$(ping -c 1 "$URL" | grep "PING") if [[ -z $PING_RESULT ]]; then echo "Failed to reach $URL. Skipping." continue fi # Extract the IP address from the ping result RESOLVED_IP=$(echo "$PING_RESULT" | awk '{print $3}' | tr -d '()') if [[ -n $RESOLVED_IP ]]; then echo "Resolved $URL to IP: $RESOLVED_IP" # Add the IP to the ipset, flushing the set first to ensure it's clean echo "Flushing and updating ipset: $IPSET_NAME" sudo ipset flush "$IPSET_NAME" sudo ipset add "$IPSET_NAME" "$RESOLVED_IP" else echo "No IP resolved for $URL. Skipping." fi done echo "IP sets updated successfully." Copy #!/bin/bash # Set your own ips here, put all your server's ip in this section # Define the source IPs to use for SNAT SOURCE_IPS=("1.1.1.1" "2.2.2.2" "3.3.3.3") # Define destination IP sets and their corresponding marks declare -A DEST_MARKS=( ["amsterdam"]=1 ["frankfurt"]=2 ["ny"]=3 ["tokyo"]=4 ["slc"]=5 ) # Log start of the script echo "Starting iptables configuration script..." echo "Destination marks: ${!DEST_MARKS[@]}" echo "Source IPs: ${SOURCE_IPS[*]}" # Step 1: Mark outgoing traffic based on destination echo "Setting up mangle table rules for marking traffic..." for DEST in "${!DEST_MARKS[@]}"; do MARK="${DEST_MARKS[$DEST]}" echo "Marking traffic for destination set: $DEST with mark: $MARK" sudo iptables -t mangle -A OUTPUT -p tcp --dport 443 -m set --match-set "$DEST" dst -j MARK --set-mark "$MARK" done # Log mangle table rules echo "Current mangle table OUTPUT rules:" sudo iptables -t mangle -L OUTPUT -v -n # Step 2: Apply SNAT rules based on marks echo "Setting up nat table SNAT rules..." for MARK in "${DEST_MARKS[@]}"; do TOTAL_IPS=${#SOURCE_IPS[@]} echo "Applying SNAT for mark: $MARK with $TOTAL_IPS source IPs..." for ((i = 0; i < TOTAL_IPS; i++)); do PACKET_INDEX=$((i % TOTAL_IPS)) echo " SNAT: Mark $MARK, Source IP ${SOURCE_IPS[$i]}, Packet Index $PACKET_INDEX" sudo iptables -t nat -A POSTROUTING -m mark --mark "$MARK" -m statistic --mode nth --every "$TOTAL_IPS" --packet "$PACKET_INDEX" -j SNAT --to-source "${SOURCE_IPS[$i]}" done done # Log nat table rules echo "Current nat table POSTROUTING rules:" sudo iptables -t nat -L POSTROUTING -v -n # Log script completion echo "iptables configuration completed successfully." Copy ./run.sh config.jito.yaml --- # Performance tuning | SolanaMevBot Make sure you already have the bot running and landing before diving into this page. This page assumes you already have some basic knowledge of the bot. Once you get your bot up and running, the next step is to tune it to get the best performance. There are a lot of variables so the exact config may differ for every person. This page will go through all the things that may affect the performance, and how you can improve it. When an arb opportunity appears, there will be hundreds or thousands of bots trying to seize it. And you want to be faster than others and be the first few ones to take it. So the overall idea is very simple, you want to be fast in every possible places. Fast reading, fast sending, fast landing etc. And all the tuning in this page is around this. every milliseconds matters. Make sure you only tweak one or just a few configs at a time, verify your change works, then repeat. If you change too many things at once it's very hard to figure out what goes wrong. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#rpc) RPC --------------------------------------------------------------------------------------------- RPC is probably one of the most important things for your setup. There are a few things to consider here. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#location) location location can affect the performance in several different ways. First you want your server to be as close to your RPC as possible. The easiest way to test is ping your rpc address from your server. Example: Copy ping api.mainnet-beta.solana.com The ideal value for a good location is <10 ms. The most idea location is <1 ms, which basically means your RPC is physically located in the same data center as your server. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#read-vs-send) Read vs Send Read and send are actually two totally different things for an RPC. Find a good read RPC to read can make sure you get the opportunity right when it appears, a good send RPC can help you to land the transaction and land it fast. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#read-tuning) Read tuning ------------------------------------------------------------------------------------------------------------- _**PROCESS\_DELAY**_ Default is 1000, unit in milliseconds. This controls how long the bot wait to quote and try to find an arb again for a given base mint + trade size. The less of this, the more frequently the bot try to find the arb. Do note that a small number like 100 may kill your RPC or Jup API due to the high load of requests. If you make this smaller and then sees much less or no opportunities, that means it's too small and you need to adjust it. If you are using public jup api [https://quote-api.jup.ag/v6](https://quote-api.jup.ag/v6) , make sure you set PROCESS\_DELAY to a very big number like 10000, with only one base mint and one trade size, this may help you to test it longer before getting blocked. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#send-tuning) Send tuning ------------------------------------------------------------------------------------------------------------- ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#enable_spam) **ENABLE\_SPAM** For maximum profit you will want to enable this. This means the bot will send transactions to all the senders you set, some of them may not land, some may land but failed, and some will land and succeed. You will need to find a good RPC and tweak your settings to make sure your profit can cover all the gas fees for failed transactions. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#skip_preflight) **SKIP\_PREFLIGHT** This is a config you can change when you send your transaction. To understand what it means you can read the Solana doc [here](https://solana.com/docs/advanced/retry#the-cost-of-skipping-preflight) . In short the rpc you send your transaction with will simulate your transaction and not sending it if it failed. This is very similar to ENABLE\_SIMULATION, but this runs with your send rpcs, and ENABLE\_SIMULATION runs with your read rpc. You should only set at most one of ENABLE\_SIMULATION=true and SKIP\_PREFLIGHT=false. Setting both is a waste of rpc resources. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#send_rpc_urls) **SEND\_RPC\_URLS** It is recommended to find multiple RPCs for sending, as they can land in different situations, and you want whoever is the fastest to land it for you. You can use the following tool to test how fast a RPC is to land a transaction to help you find the best ones: [https://github.com/Cetipoo/solana-rpc-benchmark-tool](https://github.com/Cetipoo/solana-rpc-benchmark-tool) ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#use_different_tx_for_senders) **USE\_DIFFERENT\_TX\_FOR\_SENDERS** By default, the bot will send the same transaction through all the senders. This can make sure the fastest land it and if it failed, you only lose one gas fee. When set `USE_DIFFERENT_TX_FOR_SENDERS=true`, the bot will use a different transaction for different senders. This will give you more profit if the oppotunity is big enough to allow more than one, but also will lose you more gas fee if all are failed. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#compute_unit_price) **COMPUTE\_UNIT\_PRICE** aka priority fee on solana. Default to 10001, which based on helius lab, is the minimum number that some validators will not drop your transaction. In theory, the higher this is, the more likely your transaction can land and the faster it will land. But, this will result in higher gas fee as well. So you need to adjust this carefully and maybe in small incremental values to find the best value for your setup. You can also use the tool to test different COMPUTE\_UNIT\_PRICE value to help you decide which one is better, do note that running the test will cost you gas fee for all the ones that landed: [https://github.com/Cetipoo/solana-rpc-benchmark-tool](https://github.com/Cetipoo/solana-rpc-benchmark-tool) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#jito) Jito ----------------------------------------------------------------------------------------------- Jito is a mev service on Solana, that allows you to send transaction with a tip, which will help you land faster, and it will ONLY land it if it succeeded. Which means no failed transaction will be landed! Hence no lose on gas fee! To learn more about jito, you can read here: [https://www.jito.wtf/](https://www.jito.wtf/) ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#enable_jito) **ENABLE\_JITO** When you set ENABLE\_JITO=true, the bot will send the transaction through jito. This is basically a no brainer and should always be set. Jito does have a 50/s/ip rate limit, so if you are seeing too many opportunities that above this number, some may not go through with jito due to rate limit. When using Jito, the transaction is not send through RPC, but send through Jito block engine. The bot will send the transaction to all 5 jito block engine, you want to be very close to at least one of them to minimize your sending time. [https://jito-labs.gitbook.io/mev/searcher-resources/block-engine/mainnet-addresses](https://jito-labs.gitbook.io/mev/searcher-resources/block-engine/mainnet-addresses) ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#jito_tip_bp) **JITO\_TIP\_BP** Default to 5000, this means 50% of your profit will be used as the tip to Jito, which helps you to land the transaction. Jito runs an auction house on each Jito leader, and will order all the jito bundle by the tip they give. So in theory, if you and another person both try to seize the same opportunity, and you have a higher tip than the other person, you will be ranked higher and take the oppotunity and the other person will fail to get it. Though in reality there's a lot more to how Jito works, and higher tip does not always mean higher landing rate. This is something you should tweak and find the best number for your own setup. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#jupiter-api) Jupiter API ------------------------------------------------------------------------------------------------------------- The bot provides a convenient way to run the Jupiter(V6) API direclty with the bot when setting the JUPITER\_URL to `http://0.0.0.0:18080`. But you can also choose to host it yourself, or find a third party provider. As all the tuning we are doing here, our goal is to be fast. This tuning guide is mostly for the Jupiter API hosted together with the bot. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#yellowstone_url) **YELLOWSTONE\_URL** Yellowstone(grpc) is a geyser plugin for Solana validator. You may see people talking about yellowstone/grpc/geyser, they are all the same thing. Read more here: [https://docs.triton.one/project-yellowstone/introduction](https://docs.triton.one/project-yellowstone/introduction) It provides a stream service that will push the data continually to the receiver. To run a high performance Jupiter API, this is something you must have. With this you may be able to run a Jupiter API with up to 1000 different mints. Without it, you will have a hard time to run even with 50 different mints. To debug and see how your yellowstone performs, run `debug.sh` instead of `run.sh`, which will output some additional logs for jupiter. Pay attention to the logs like the following: For the most performant yellowstone, you should barely see this log. You can see there's a lagging min and max number. If the difference is less than 10-20, it's usually still ok, if it's more then you may likely not getting any opportunity with it. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#rpc_url) **RPC\_URL** Jupiter needs a normal rpc to read a few things. In addition, if you do not provide a YELLOWSTONE\_URL, the bot will run Jupiter API in pull mode, which means it will make a huge amount of requests every few seconds. This can be a huge amount for some RPC, and you will see Jupiter crash or too many requests error if you have too many intermedium mints. You should never use more than 50 mints for your intermedium mints when you don't have `YELLOWSTONE_URL`. And 50 is for a very good rpc. Most rpc can only affort it to be 3-10 ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#use_direct_route_only) USE\_DIRECT\_ROUTE\_ONLY When set to true, the bot will only look for 2hop(A -> B -> A) trade. Setting to true will lead to shorter quote time to Jupiter API, which end up with faster landing. When setting to false, the bot will also look for opportunities like (A -> B -> C -> A). Setting to false will lead to more opportunities, but taking more time to quote. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#jup_max_accounts) **JUP\_MAX\_ACCOUNTS** This is used when quoting from Jupiter API. A solana transaction can contain at most 64 accounts. With the help of AddressLookupTable this number can go up. The bot will quote twice for each mint, A ->B and B -> A. So the total accounts used will be 2 \* JUP\_MAX\_ACCOUNTS in worst case. For the bot specifically, you shouldn't try to go higher than 32 for the value. The higher the value is, the more complicated route it can found, but slower. With lower value, you will find less route but faster. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#intermedium-mints) Intermedium mints ------------------------------------------------------------------------------------------------------------------------- ![](https://docs.solanamevbot.com/home/~gitbook/image?url=https%3A%2F%2F3811539071-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fx2rxpD03KDvMgJqIkdla%252Fuploads%252FXgYe4dm2NOvEFWmqble5%252Fimage.png%3Falt%3Dmedia%26token%3Dca591b4b-5130-4d29-b60c-e877325ea0ef&width=768&dpr=4&quality=100&sign=89bcfc56&sv=2) A good token choice makes a huge difference One of the biggest diffrenciation between different strategies is how you choose your intermedium mints. In general, the more intermedium mints you have, the slower your Jupiter quote will be. But also the more intermedium mints you have, the more chances you may find opportunities. So you will need to test for different combinations and find what works best for you. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#intermedium_mint_count_from_birdeye) **INTERMEDIUM\_MINT\_COUNT\_FROM\_BIRDEYE** This param configs how many top MINTS to use as intermedium mints. The mints are also pulled fro Birdeye. If you have too many intermedium tokens, it can slow down your jupiter quote because it's overloaded. So try a few different values and see which one works best for you. Note: This should be equal or smaller than _**JUPITER\_TOKEN\_COUNT**_ ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#intermedium_mint_from_file) INTERMEDIUM\_MINT\_FROM\_FILE For an arb trade(A ->B ->A), B is called intermedium mint here. Instead of using tokens pulled from Birdeye, you can also add your own mints that you want to use as the intermedium mints. This can be helpful when you noticed a token that is has potential but don't have enough volume yet, or there's a big token launch coming and you just want to prepare for it. If you don't want to use any mints pulled from Birdeye, you can do that by setting `INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE`to 0, and add all the mints you want to use to`` intermedium-mints.json and set it in `INTERMEDIUM_MINT_FROM_FILE` `` [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#bot) Bot --------------------------------------------------------------------------------------------- The last step is tuning your bot. There's a lot of trade offs to make here, so you will likely need to test different combinations your self and find the best strategy that fits you. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#quote-time) Quote time You should see the quote time for all your opportunities in the log. This will give you some idea on how fast you are talking to your jupiter server. In general, if you only do 2hop, USE\_DIRECT\_ROUTE\_ONLY, a good quote time is under 10ms, 30ms is acceptable. If you do 3hop, or USE\_DIRECT\_ROUTE\_ONLY = false, a good quote time is under 200ms, 300ms is acceptable but not idea. If you are seeing consistent high number, you should tune it. See [My jupiter quote time is high](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting#my-jupiter-quote-time-is-high) ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#enable_simulation) **ENABLE\_SIMULATION** When this is set to true, all the potential arbs will call a simulationTransaction call to your read RPC, and only the ones that succeeded will be seen as an oppotunity. Running simulation can be very expensive for RPC, so if you have too many pairs of base-mint + trade size, and have a very small PROCESS\_DELAY, this can kill your RPC and causing you to see no opportunities at all. The good part of setting this to true is, this can greatly reduce the number of failed transactions you land compare to set it to false, but in exchange for an additional call to your RPC which can slow down your speed to send transaction. When setting this to false, and if you have ENABLE\_SPAM=true, do expect to see a lot of failed transactions. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#auto_restart) **AUTO\_RESTART** Bot can be set to automatically restart on a fixed time, this can be very helpful to catch the latest trend, when using with birdeye together. Though the restart itself may take a little time, so you will lose the oppotunities during the restart. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#process_delay) **PROCESS\_DELAY** Process delay means, for each mint + trade size, when the bot finished looking for arb for it, how long does the bot wait until it tries again. Setting a small number here, when you also have a large number of trade size + intermedium mints, can lead to a huge load to your RPC. If you tune this to a small number and stops seeing opportunities, this is what happening. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#base_mints) **BASE\_MINTS** SolanaMevBot provides several different ways to set trade sizes. You can use fixed trade sizes or using random ones within a range. When you set your trade size, you should try to make it spread over a large range, so it can get all possible opportunities. e.g. If you have 100 SOL in your wallet, a good distribution can be like this: 1 SOL/2.5 SOL/5 SOL/10 SOL/25 SOL/50 SOL/100 SOL [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#multiple-locations) Multiple locations --------------------------------------------------------------------------------------------------------------------------- If you already have a profitable setup, the easiest way to levelup is to duplicate it in different locations! Solana is a decentralized blockchain, a server in Asia may as a ping of >200ms to a server in U.S. By having more machines in different locations you are likely to get much more opportunities in time. **Note**: If you want to use the same wallet for multiple locations, you should set [`USE_SEPARATE_TIP_ACCOUNT`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_separate_tip_account) to true. Jito is rate limiting based on ip + wallet/region, this flag can get around this and let you be limited only by ip. You can also use different wallets for different locations. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#strategy) Strategy ------------------------------------------------------------------------------------------------------- There are a lot of strategies you can use with the bot. Some of the examples are listed in [Strategy](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#strategy) . And that is just a list of examples. Different strategies can lead to a huge difference in your profitability. If there's a super volatile token on the market with huge volume, the [Super spam strategy with only 1 or 2 mints](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy#super-spam-strategy-with-only-1-or-2-mints) can work greatly and generates a lot of profits in a short time period. But the same strategy may not work or even lose you money when the market is dry. You need to test with your specific setup and figure out what's the best strategy for you, and switch it based on market conditions. [PreviousCommon workflow](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/common-workflow) [NextBot Strategy](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy) Last updated 9 months ago * [RPC](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#rpc) * [location](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#location) * [Read vs Send](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#read-vs-send) * [Read tuning](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#read-tuning) * [Send tuning](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#send-tuning) * [ENABLE\_SPAM](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#enable_spam) * [SKIP\_PREFLIGHT](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#skip_preflight) * [SEND\_RPC\_URLS](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#send_rpc_urls) * [USE\_DIFFERENT\_TX\_FOR\_SENDERS](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#use_different_tx_for_senders) * [COMPUTE\_UNIT\_PRICE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#compute_unit_price) * [Jito](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#jito) * [ENABLE\_JITO](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#enable_jito) * [JITO\_TIP\_BP](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#jito_tip_bp) * [Jupiter API](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#jupiter-api) * [YELLOWSTONE\_URL](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#yellowstone_url) * [RPC\_URL](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#rpc_url) * [USE\_DIRECT\_ROUTE\_ONLY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#use_direct_route_only) * [JUP\_MAX\_ACCOUNTS](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#jup_max_accounts) * [Intermedium mints](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#intermedium-mints) * [INTERMEDIUM\_MINT\_COUNT\_FROM\_BIRDEYE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#intermedium_mint_count_from_birdeye) * [INTERMEDIUM\_MINT\_FROM\_FILE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#intermedium_mint_from_file) * [Bot](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#bot) * [Quote time](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#quote-time) * [ENABLE\_SIMULATION](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#enable_simulation) * [AUTO\_RESTART](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#auto_restart) * [PROCESS\_DELAY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#process_delay) * [BASE\_MINTS](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#base_mints) * [Multiple locations](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#multiple-locations) * [Strategy](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/performance-tuning#strategy) Copy jupiter_core::geyser_client] Chunked geyser slots are lagging min: 265511878, max: 265511885 --- # Config examples | SolanaMevBot **If you are a new user, use the** `**Demo account config**` **here. DO NOT USE ANY OTHER ONES.** Demo account config The [demo account](https://solscan.io/account/DemopzRfMHVjhR9RCPnhg45CtSt85uvSbxgTgN9Sq4Px) is using a Jito only strategy. With this strategy you won't land any failed transaction, and can work well with just one RPC. It purely uses RPC and gRPC(Yellowstone) from [Shyft.to](https://shyft.to/) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations/config-examples#demo-account-config-the-demo-account-is-using-a-jito-only-strategy.-with-this-strategy-you-wont-land) The demo account is using a teraswitch machine(8 Core/32GB) in Amsterdam($150/m). To run this config you need at least ~0.2 sol in your wallet. Fill in the following field in the config.yaml file(YELLOWSTONE is optional but recommended) Copy KEYS: PRIVATE_KEY: YELLOWSTONE: YELLOWSTONE_URL: YELLOWSTONE_XTOKEN: BOT: RPC_URL: **Full config.yaml** Copy KEYS: PRIVATE_KEY: YELLOWSTONE: YELLOWSTONE_URL: YELLOWSTONE_XTOKEN: JUPITER: JUPITER_URL: http://127.0.0.1:18080 JUP_MAX_ACCOUNTS: 20 LOCAL_JUPITER_PORT: 18080 USE_DIRECT_ROUTE_ONLY: true EXCLUDED_DEXES: - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P - MoonCVVNZFSYkqNXP6bxHLPL6QQJiMagDL3qcqUQTrG INTERMEDIUM_MINTS: INTERMEDIUM_MINT_LIST: - EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v BOT: RPC_URL: AUTO_RESTART: 30 MAX_COMPUTE_TIME: 500 ENABLE_SIMULATION: false PAY_FEE_WITH_PROFIT: true JITO: ENABLE_JITO: true TIP_STRATEGIES: - dynamic - fixed FIXED_TIP: 50_000 MAX_TIP: 1_000_000_000 DYNAMIC_TIP_BP: 9000 USE_DIFFERENT_TX_FOR_BLOCK_ENGINES: true BLOCK_ENGINES: - ny - amsterdam - frankfurt - tokyo - slc BLIND_QUOTE_STRATEGY: ENABLE_BLIND_QUOTE_STRATEGY: true BASE_MINTS: - MINT: So11111111111111111111111111111111111111112 SKIP_PROFIT_CHECK_FOR_QUOTE: true TRADE_SIZES: - 100_000_000 PROCESS_DELAY: 1000 Copy trade config The [Spam account](https://birdeye.so/profile/SpamwqHeYHX5D17wsUBXDLMDDaMpXFSz9HPsZKZi34X?chain=solana) is using this config. This is a Jito config that copy the top players' mints and trying to find arb on them. This is just an example and is not a fully tuned config. You may need to adjust based on your setups.[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations/config-examples#copy-trade-config-the-spam-account-is-using-this-config.-this-is-a-jito-config-that-copy-the-top-pla) [https://www.circular.bot/trends](https://www.circular.bot/trends) is a good place to find the current best player. Fill in the following field in the config.yaml file(YELLOWSTONE is optional but recommended) Copy KEYS: PRIVATE_KEY: YELLOWSTONE: YELLOWSTONE_URL: YELLOWSTONE_XTOKEN: BOT: RPC_URL: **Full config.yaml** Copy KEYS: PRIVATE_KEY: '' YELLOWSTONE: YELLOWSTONE_URL: '' YELLOWSTONE_XTOKEN: '' JUPITER: JUPITER_RPC_URL: '' MARKET_MODE: remote DISABLE_LOCAL_JUPITER: false JUPITER_URL: http://0.0.0.0:18080 JUP_MAX_ACCOUNTS: 20 LOCAL_JUPITER_PORT: 18080 USE_DIRECT_ROUTE_ONLY: true EXCLUDED_DEXES: - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P - MoonCVVNZFSYkqNXP6bxHLPL6QQJiMagDL3qcqUQTrG INTERMEDIUM_MINTS: INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE: 0 INTERMEDIUM_MINT_COUNT_FROM_GECKO: 0 INTERMEDIUM_MINT_FROM_FILE: '' INTERMEDIUM_MINT_EXCLUDE_FROM_FILE: 'exclude-mints.json' INTERMEDIUM_MINT_FROM_ADDRESSES: MAX_MINT_COUNT: 20 ADDRESSES: - ADDRESS: 55NQkFDwwW8noThkL9Rd5ngbgUU36fYZeos1k5ZwjGdn TX_COUNT_PER_ADDRESS: 20 # Number of latest transactions to check on start SUCCESSFUL_ONLY: true # Only consider successful transactions - ADDRESS: GuiU6MpLahPHSHYcsfSRjwLUm1AtZ9zP2eiLAkJMBjg TX_COUNT_PER_ADDRESS: 20 # Number of latest transactions to check on start SUCCESSFUL_ONLY: true # Only consider successful transactions - ADDRESS: 54EiavhVatcFbcRHKm2swd6eB8reyib3kTkDGScoGjGK TX_COUNT_PER_ADDRESS: 20 # Number of latest transactions to check on start SUCCESSFUL_ONLY: true # Only consider successful transactions BOT: RPC_URL: '' AUTO_RESTART: 30 MIN_SOL_BALANCE: 10_000_000_000 MAX_COMPUTE_TIME: 500 ENABLE_SIMULATION: false SPAM: ENABLE_SPAM: false JITO: ENABLE_JITO: true SHOW_JITO_LOGS: false JITO_UUID: '' ENABLE_JITO_RPC: false TIP_STRATEGIES: - dynamic - static DYNAMIC_TIP_BP: 8655 STATIC_TIP_BP: 8655 BLIND_QUOTE_STRATEGY: ENABLE_BLIND_QUOTE_STRATEGY: true BASE_MINTS: - MINT: So11111111111111111111111111111111111111112 MIN_QUOTE_PROFIT: 500_000 TRADE_RANGE: FROM: 2_000_000_000 TO: 10_000_000_000 TRADE_RANGE_COUNT: 3 TRADE_RANGE_STRATEGY: random PROCESS_DELAY: 100 - MINT: So11111111111111111111111111111111111111112 MIN_QUOTE_PROFIT: 500_000 TRADE_RANGE: FROM: 10_000_000_000 TO: 50_000_000_000 TRADE_RANGE_COUNT: 3 TRADE_RANGE_STRATEGY: random PROCESS_DELAY: 100 **exclude-mints.json** Copy [\ "So11111111111111111111111111111111111111112",\ "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",\ "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"\ ] bloXroute config This is a mixed strategy using both jito and bloXroute.[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations/config-examples#bloxroute-config-this-is-a-mixed-strategy-using-both-jito-and-bloxroute) The machines runs this is using the following hardware: CPU AMD Ryzen 9 7950X Cores/Threads 16c / 32t Memory (RAM) 128 GB And located in Amsterdam, the same location as Shyft RPC and Yellowstone. Fill in the following field in the config.yaml file(YELLOWSTONE is optional but recommended) Copy KEYS: PRIVATE_KEY: YELLOWSTONE: YELLOWSTONE_URL: YELLOWSTONE_XTOKEN: BOT: RPC_URL: **config.yaml** Copy KEYS: PRIVATE_KEY: YELLOWSTONE: YELLOWSTONE_URL: YELLOWSTONE_XTOKEN: JUPITER: MARKET_MODE: remote JUPITER_URL: http://0.0.0.0:18080 JUP_MAX_ACCOUNTS: 20 LOCAL_JUPITER_PORT: 18080 USE_DIRECT_ROUTE_ONLY: true EXCLUDED_DEXES: - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P - MoonCVVNZFSYkqNXP6bxHLPL6QQJiMagDL3qcqUQTrG INTERMEDIUM_MINTS: INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE: 100 BOT: RPC_URL: AUTO_RESTART: 120 MAX_COMPUTE_TIME: 400 MIN_SOL_BALANCE: 1_000_000_000 WRAP_SOL_AMOUNT: 100_000_000 ENABLE_SIMULATION: false PULL_BLOCKHASH_WITH_YELLOWSTONE: false SPAM: ENABLE_SPAM: true SPAM_RESTRICT_LEVEL: 0 SKIP_PREFLIGHT: true USE_DIFFERENT_TX_FOR_SENDERS: false FIXED_COMPUTE_UNIT_LIMIT: 0 MAX_RETRIES: 0 SEND_RPC_URLS: [] PRIORITY_FEE_STRATEGY: fixed COMPUTE_UNIT_PRICE: 100_000 BLOXROUTE: ENABLE_BLOXROUTE: true BLOXROUTE_REGION: 'ny' JITO: ENABLE_JITO: true SHOW_JITO_LOGS: false TIP_STRATEGIES: - dynamic - static DYNAMIC_TIP_BP: 8222 STATIC_TIP_BP: 8222 USE_SEPARATE_TIP_ACCOUNT: false USE_DIFFERENT_TX_FOR_BLOCK_ENGINES: true BLOCK_ENGINES: - ny - amsterdam - frankfurt - tokyo - slc BLIND_QUOTE_STRATEGY: ENABLE_BLIND_QUOTE_STRATEGY: true BASE_MINTS: - MINT: So11111111111111111111111111111111111111112 MIN_QUOTE_PROFIT: 1_000_000 TRADE_RANGE: FROM: 1_000_000_000 TO: 10_000_000_000 TRADE_RANGE_COUNT: 5 TRADE_RANGE_STRATEGY: random PROCESS_DELAY: 1000 Spam config This is an example config for how to use spam strategy. Note you need multiple good RPCs for sending, minimize all possible latencies, and tune it yourself to be profitable with spam strategy. Not everyone can be profitable with spam strategy.[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations/config-examples#spam-config-this-is-an-example-config-for-how-to-use-spam-strategy.-note-you-need-multiple-good-rpcs) Fill in the following field in the config.yaml file(YELLOWSTONE is optional but recommended) Copy KEYS: PRIVATE_KEY: YELLOWSTONE: YELLOWSTONE_URL: YELLOWSTONE_XTOKEN: BOT: RPC_URL: SPAM: SEND_RPC_URLS: **config.yaml** Copy KEYS: PRIVATE_KEY: '' YELLOWSTONE: YELLOWSTONE_URL: '' YELLOWSTONE_XTOKEN: '' JUPITER: MARKET_MODE: remote DISABLE_LOCAL_JUPITER: false JUPITER_URL: http://0.0.0.0:18080 JUP_MAX_ACCOUNTS: 20 LOCAL_JUPITER_PORT: 18080 USE_DIRECT_ROUTE_ONLY: true USE_LOCAL_MARKET_CACHE: false EXCLUDED_DEXES: - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P - MoonCVVNZFSYkqNXP6bxHLPL6QQJiMagDL3qcqUQTrG INTERMEDIUM_MINTS: INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE: 500 BOT: RPC_URL: '' AUTO_RESTART: 60 MAX_COMPUTE_TIME: 400 ENABLE_SIMULATION: true SPAM: ENABLE_SPAM: true SPAM_RESTRICT_LEVEL: 0 SKIP_PREFLIGHT: true USE_DIFFERENT_TX_FOR_SENDERS: false FIXED_COMPUTE_UNIT_LIMIT: 250000 COMPUTE_UNIT_PRICE: 10001 PRIORITY_FEE_UPDATE_INTERVAL: 60 MAX_RETRIES: 0 SEND_RPC_URLS: [] BLIND_QUOTE_STRATEGY: ENABLE_BLIND_QUOTE_STRATEGY: true SKIP_SAME_OPPORTUNITY: true BASE_MINTS: - MINT: So11111111111111111111111111111111111111112 MIN_QUOTE_PROFIT: 500_000 TRADE_RANGE: FROM: 1_000_000_000 TO: 10_000_000_000 TRADE_RANGE_COUNT: 10 TRADE_RANGE_STRATEGY: linear PROCESS_DELAY: 500 - MINT: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v MIN_QUOTE_PROFIT: 500_000 TRADE_RANGE: FROM: 100_000_000 TO: 500_000_000 TRADE_RANGE_COUNT: 5 TRADE_RANGE_STRATEGY: linear PROCESS_DELAY: 500 Super spam config It's using helius and read RPC and helius + quickndoe as send rpcs. This is an example config on how to use super spam strategy. Note you need multiple good RPCs for sending, minimize all possible latencies, and always have an eye on the market for the hottest mint. See [Super spam strategy with only 1 or 2 mints](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy#super-spam-strategy-with-only-1-or-2-mints) for more details about this config. The intermedium-mints.json will be updated very frequently so the mints here is likely not the one the bot is using right now. \*_The Spam account is not always active, I periodically turn it off when the market condition is not good for the config._[](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations/config-examples#super-spam-config-its-using-helius-and-read-rpc-and-helius--quickndoe-as-send-rpcs.-this-is-an-exam) Fill in the following field in the config.yaml file(YELLOWSTONE is optional but recommended) Copy KEYS: PRIVATE_KEY: YELLOWSTONE: YELLOWSTONE_URL: YELLOWSTONE_XTOKEN: BOT: RPC_URL: SPAM: SEND_RPC_URLS: **config.yaml** You can also use [flashloan](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#flashloan) with this strategy if you don't have enough fund. Copy KEYS: PRIVATE_KEY: '' YELLOWSTONE: YELLOWSTONE_URL: '' YELLOWSTONE_XTOKEN: '' JUPITER: MARKET_MODE: remote DISABLE_LOCAL_JUPITER: false JUPITER_URL: http://0.0.0.0:18080 JUP_MAX_ACCOUNTS: 20 LOCAL_JUPITER_PORT: 18080 USE_DIRECT_ROUTE_ONLY: true USE_LOCAL_MARKET_CACHE: false EXCLUDED_DEXES: - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P - MoonCVVNZFSYkqNXP6bxHLPL6QQJiMagDL3qcqUQTrG INTERMEDIUM_MINTS: INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE: 0 INTERMEDIUM_MINT_COUNT_FROM_GECKO: 0 INTERMEDIUM_MINT_FROM_FILE: intermedium-mints.json BOT: RPC_URL: '' AUTO_RESTART: 60 MAX_COMPUTE_TIME: 400 ENABLE_SIMULATION: false PULL_BLOCKHASH_WITH_YELLOWSTONE: false SPAM: ENABLE_SPAM: true SPAM_RESTRICT_LEVEL: 0 SKIP_PREFLIGHT: true USE_DIFFERENT_TX_FOR_SENDERS: true FIXED_COMPUTE_UNIT_LIMIT: 280000 COMPUTE_UNIT_PRICE: 250000 PRIORITY_FEE_UPDATE_INTERVAL: 60 MAX_RETRIES: 0 SEND_RPC_URLS: [] JITO: ENABLE_JITO: false BLIND_QUOTE_STRATEGY: ENABLE_BLIND_QUOTE_STRATEGY: true BASE_MINTS: - MINT: So11111111111111111111111111111111111111112 SKIP_PROFIT_CHECK_FOR_QUOTE: true TRADE_RANGE: FROM: 1_000_000_000 TO: 40_000_000_000 TRADE_RANGE_COUNT: 2 TRADE_RANGE_STRATEGY: random PROCESS_DELAY: 100 **intermedium-mints.json** You want to put the current hottest mint with lots of volume and velocity here. This is just an example. Copy [\ "CTJf74cTo3cw8acFP1YXF3QpsQUUBGBjh2k2e8xsZ6UL"\ ] High fee backrun config This strategy use a very high gas fee and is sending much less tx than a traditional spam strategy. The goal is to pay a high enough gas fee in order to land fast and catch the opportunity right after it appears. This strategy has the highest requirement for your rpc and server, you want to has as little latency as possible as it may cost you a lot for a fail transaction. This exact config captured the [82 SOL arb](https://solscan.io/tx/39u6y9isQvL776ZpFri9DRQxkckTdE36adwYnFT9QSv9PBCc7KWBy3Pf5y2Emy8bYwfKNMi98tg7RMDezGqHLFNL) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations/config-examples#high-fee-backrun-config-this-strategy-use-a-very-high-gas-fee-and-is-sending-much-less-tx-than-a-tra) config.yaml [PreviousBot configurations](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations) [NextCommon workflow](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/common-workflow) Last updated 9 months ago Copy KEYS: PRIVATE_KEY: your-private-key # Your private key HELIUS_API_KEY: '' YELLOWSTONE: YELLOWSTONE_URL: http://your-yellowstone-url # Your yellowstone url YELLOWSTONE_XTOKEN: your-yellowstone-x-token # Your yellowstone x token PULL_BLOCKHASH_WITH_YELLOWSTONE: true JUPITER: JUPITER_RPC_URL: '' MARKET_MODE: remote DISABLE_LOCAL_JUPITER: false JUPITER_URL: http://0.0.0.0:18080 JUP_MAX_ACCOUNTS: 25 LOCAL_JUPITER_PORT: 18080 USE_DIRECT_ROUTE_ONLY: true USE_LOCAL_MARKET_CACHE: false EXCLUDED_DEXES: - 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P - MoonCVVNZFSYkqNXP6bxHLPL6QQJiMagDL3qcqUQTrG INTERMEDIUM_MINTS: INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE: 500 INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE_TRENDING: 200 INTERMEDIUM_MINT_COUNT_FROM_GECKO: 20 BOT: ENABLE_JITO_RPC: true RPC_URL: http://your-rpc-url # Your rpc url AUTO_RESTART: 60 MAX_COMPUTE_TIME: 30 ENABLE_SIMULATION: true PAY_FEE_WITH_PROFIT: true SPAM: ENABLE_SPAM: true PRIORITY_FEE_STRATEGY: profit-based SPAM_RESTRICT_LEVEL: 5 SKIP_PREFLIGHT: true USE_DIFFERENT_TX_FOR_SENDERS: false FIXED_COMPUTE_UNIT_LIMIT: 0 SPAM_FEE_BPS: 100 MAX_COMPUTE_UNIT_PRICE: 2_000_000_000 MAX_RETRIES: 0 SEND_RPC_URLS: - http://your-rpc-url # Your rpc url BLOXROUTE: ENABLE_BLOXROUTE: false BLOXROUTE_REGION: uk BLOXROUTE_FEE: 500_000 JITO: ENABLE_JITO: true SHOW_JITO_LOGS: false JITO_UUID: '' TIP_STRATEGIES: - dynamic DYNAMIC_TIP_BP: 9501 USE_SEPARATE_TIP_ACCOUNT: false USE_DIFFERENT_TIP_ACCOUNT_FOR_BLOCK_ENGINES: true USE_DIFFERENT_TX_FOR_BLOCK_ENGINES: true BLOCK_ENGINES: - ny - amsterdam - frankfurt - tokyo - slc LOGGING: DEBUG: false HIDE_ERROR: false ENABLE_LANDING_LOG: false ENABLE_SENDING_LOG: false BACKRUN_STRATEGY: ENABLE_BACKRUN_STRATEGY: true SLOT_MEMO: true DEXES_TO_MONITOR: - Raydium - Whirlpool - RaydiumCLMM - Meteora - MeteoraDLMM MIN_PRICE_IMPACT_PCT: 0.1 BASE_MINTS: - MINT: So11111111111111111111111111111111111111112 MIN_SIMULATED_PROFIT: 200_000 SKIP_PROFIT_CHECK_FOR_QUOTE: true MIN_TRADE_SIZE: 500_000_000 MAX_TRADE_SIZE: 150_000_000_000 TRADE_CONFIGS: - MIN_TRADE_BP: 2000 MAX_TRADE_BP: 2000 ROUTE_TYPES: - 2hop --- # Releases | SolanaMevBot [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-1.0.8) Release 1.0.8 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-1.0.8.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-1.0.8.zip) * Fix a bug on how mints are excluded when using circular api. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-1.0.7) Release 1.0.7 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-1.0.7.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-1.0.7.zip) * Remove setLoadedAccountsDataSizeLimit ix [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-1.0.6) Release 1.0.6 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-1.0.6.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-1.0.6.zip) * Fixed a bug with USDC/USD1 base mint. where if you exclude it then USDC/USD1 pool will not be fetched properly. * Added 3 new optional configs for circular. `min_liquidity_token`, `max_liquidity_token`, `min_pool_token`. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-1.0.5) Release 1.0.5 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-1.0.5.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-1.0.5.zip) * Fixed a bug where some pool is not parsed correctly. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-1.0.4) Release 1.0.4 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-1.0.4.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-1.0.4.zip) * Update pump global\_volume\_accumulator account to read only. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-1.0.2) Release 1.0.2 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-1.0.2.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-1.0.2.zip) * Fix a bug where bot may fail to remove pool. * Fix a bug for `only_include_tokens` config. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-1.0.1) Release 1.0.1 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-1.0.1.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-1.0.1.zip) * Circular config only works with merge\_mints = false and skip\_ata\_creation = true. Now the bot won't start if these configs are not set properly. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-1.0.0) Release 1.0.0 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-1.0.0.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-1.0.0.zip) 1.0.0 introducing a full automation mode by integrating with Circular. Bot can now automatically monitor for hot mints/pools and runs 24/7 without any user intervention! You no longer need to manually handle lookup tables or change mint/pools. All you have to do is set a detailed config for circular and you are good to go! * Bot fee is now 10% instead of 15%! * A full integration with Circular. See [Circular config](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/circular-config) for more details. You can also get started with a simple example config here: [Use Circular integration(Recommended)](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/config-examples#use-circular-integration-recommended) * Introducing a new log config. See [Log](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#log) * Introducing a new auto rebalance config. See [Auto rebalance](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#auto-rebalance) * Update fee account for pump amm mayhem mode [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.15.1) Release 0.15.1 ---------------------------------------------------------------------------------------------- * Update Pump AMM to the latest version. Old version will not work with pump amm anymore. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.15.0) Release 0.15.0 ---------------------------------------------------------------------------------------------- * Update DAMM V2 to the latest version * Small bug fixes [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.14.4) Release 0.14.4 ---------------------------------------------------------------------------------------------- * Fixed a Pumpfun bug. This should greatly increase your landing rate when using pumpfun pool. * Added a new vender config `enable_submit_batch`, which is needed to use with [https://flashblock.trade/](https://flashblock.trade/) . [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.14.1) Release 0.14.1 ---------------------------------------------------------------------------------------------- * Fixed a bug on using USD1 pool [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.14.0) Release 0.14.0 ---------------------------------------------------------------------------------------------- * Support USD1 pools. Note you can NOT mix USD1 and USDC pool together. Currently you can only mix SOL/USDC or SOL/USD1, not both. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.13.9) Release 0.13.9 ---------------------------------------------------------------------------------------------- * Update pump instruction accounts to prepare for it's up coming breaking change. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.13.3) Release 0.13.3 ---------------------------------------------------------------------------------------------- * Added support for [`enable_single_transaction_bundle`](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#enable_single_transaction_bundle) + [`use_separate_tip_account`](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#use_separate_tip_account) [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.13.2) Release 0.13.2 ---------------------------------------------------------------------------------------------- * Added a new jito config [`enable_single_transaction_bundle`](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#enable_single_transaction_bundle) . When enabled, the bot will send each transaction as its own bundle paying its own tip, instead of all in one bundle. * Fixed some validation bug when using invalid pools. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.13.1) Release 0.13.1 ---------------------------------------------------------------------------------------------- * Fixed a bug for vender sending, where if the request timeout the bot may stuck on sending. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.13.0) Release 0.13.0 ---------------------------------------------------------------------------------------------- * Created wsol account on bot start if it doesn't exist. * Checked pool mints on bot start. * Added support for Heaven Dex([https://heaven.xyz/](https://heaven.xyz/) ). You can define pool using `heaven_pool_list`. Example heaven dex tx: [https://solscan.io/tx/hBZoLFA4F9kuDQCQv7Gs4p9RxKoYwB6iF4zKwVX2iH3kZZsf6g7Hdo3zxHz3nYb422FTqB8LDCcJtunKhpZkJCN](https://solscan.io/tx/hBZoLFA4F9kuDQCQv7Gs4p9RxKoYwB6iF4zKwVX2iH3kZZsf6g7Hdo3zxHz3nYb422FTqB8LDCcJtunKhpZkJCN) [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.12.1) Release 0.12.1 ---------------------------------------------------------------------------------------------- * Fix a bug for when flashloan is not enabled, the instruction should be set properly. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.12.0) Release 0.12.0 ---------------------------------------------------------------------------------------------- * Added 3 more flashloan vaults to further reduce account lock issue. Bot will randomly choose from the 4 vaults when sending tx. * Removed the need for fee account when using flashloan, the fee will be transfered to the flashloan vault directly. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.11.8) Release 0.11.8 ---------------------------------------------------------------------------------------------- * Fixed a pump amm bug [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.11.7) Release 0.11.7 ---------------------------------------------------------------------------------------------- * Fixed a bug where orca USDC pool is not added properly. * Update pump amm instruction to prepare its up coming breaking change. * Added a default key for astralane. See [astralane](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#astralane) for more details. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.11.6) Release 0.11.6 ---------------------------------------------------------------------------------------------- * Fixed a bug where USDC ata is not created properly on bot start [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.11.5) Release 0.11.5 ---------------------------------------------------------------------------------------------- * Added a new [request\_param](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#request-params) config for sending venders. This is needed for using helius sender. See example [here](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples#helius) . * Rename `auth-header` to `auth_header` * Rename `auth-value` to `auth_value` [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.11.4) Release 0.11.4 ---------------------------------------------------------------------------------------------- * Fixed a bug when setting multiple urls for the same vender. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.11.3) Release 0.11.3 ---------------------------------------------------------------------------------------------- * Added a new feature [`skip_ata_creation`](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#skip_ata_creation) . When set the bot will skip the ata creation on bot start, and instead create it on first successful arb tx within the onchain program. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.11.2) Release 0.11.2 ---------------------------------------------------------------------------------------------- * Fix a bug with sending\_venders + bundle\_group. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.11.1) Release 0.11.1 ---------------------------------------------------------------------------------------------- * Bug fixes [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.11.0) Release 0.11.0 ---------------------------------------------------------------------------------------------- * Support [sending\_venders](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#sending_venders) . For example of adding sending venders, check [Sending Vender examples](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations/sending-vender-examples) [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.10.4) Release 0.10.4 ---------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.10.4.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.10.4.zip) * More fix for clmm [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.10.3) Release 0.10.3 ---------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.10.3.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.10.3.zip) * Use random fee wallet when flashloan is not enabled. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.10.2) Release 0.10.2 ---------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.10.2.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.10.2.zip) * Always use swap2 for orca. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.10.1) Release 0.10.1 ---------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.10.1.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.10.1.zip) * Create USDC token account on start if not exist. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.10.0) Release 0.10.0 ---------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.10.0.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.10.0.zip) * Support 3hop onchain swap. You can just put pools with either USDC/X or SOL/X now in the config. * base\_mint config is now deprecated. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.9.8) Release 0.9.8 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.9.8.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.9.8.zip) * Raise the value for setLoadedAccountsDataSizeLimit to 500000 [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.9.7) Release 0.9.7 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.9.7.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.9.7.zip) * Added a param `--write-file` for `create-lookup-table` cli command. You can use this to get the old behavior to write a the created lookup table to a file. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.9.6) Release 0.9.6 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.9.6.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.9.6.zip) * Added setLoadedAccountsDataSizeLimit instruction to optimize compute units. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.9.5) Release 0.9.5 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.9.5.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.9.5.zip) * Added 3 more sol fee accounts. The bot will still use the old one if you enable flashloan, otherwise it will choose randomly from the other 3 new fee accounts. This can help to reduce the write lock issue one the fee account when not using flashloan. The new fee accounts are: [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.9.4) Release 0.9.4 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.9.4.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.9.4.zip) * Fix a bug where vertigo pool's account keys may not be added to lookup table properly when running `create-lookup-table` or `extend-lookup-table` command. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.9.3) Release 0.9.3 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.9.3.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.9.3.zip) * Added a new cli command `find-lookup-tables`. This will list all the active lookup tables for your current wallet. * `create-lookup-table` now no longer generate an empty file. You can use `find-lookup-tables` to keep track of all your active lookup tables instead. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.9.2) Release 0.9.2 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.9.2.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.9.2.zip) * Added support for Vertigo pool `vertigo_pool_list` . You can find the pool at [https://www.vertigo.sh/pools](https://www.vertigo.sh/pools) [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.9.1) Release 0.9.1 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.9.1.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.9.1.zip) * Fixed an account issue with orca whirlpool [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.9.0) Release 0.9.0 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.9.0.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.9.0.zip) * Add support for token2022 mints. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.9) Release 0.8.9 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.9.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.9.zip) * Fixed an account order bug for whirlpool with merge\_mint = true. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.8) Release 0.8.8 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.8.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.8.zip) * Fixed a bug for jito `bundle_group` where in some corner case the tx may not send out properly. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.7) Release 0.8.7 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.7.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.7.zip) * Fixed an issue when lookup table contains jito tip account, the bot may fail to send bundle. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.6) Release 0.8.6 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.6.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.6.zip) * Added spam support for `bundle_group`. Now spam also works with `bundle_group`. Each transaction will still be send out on itself with the fee you set. But you can use merge mint to generate multiple transactions and send out through rpc. * Added a new optional config `enabled_bundle_groups` for both [jito](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#enabled_bundle_groups-1) and [spam](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#enabled_bundle_groups) . You can now control which group is being sent out by which method more easily. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.5) Release 0.8.5 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.5.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.5.zip) * Added [`bundle_group`](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#bundle_group) config to `routing.mint_config_list`. You can now bundle up to 5(or 4 if you set `use_separate_tip_account` to true) transactions into one jito bundle and only pay tip once. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.4) Release 0.8.4 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.4.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.4.zip) * Bump no\_failure\_mode tip limit from 1\_000\_000 to 5\_000\_000 [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.3) Release 0.8.3 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.3.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.3.zip) * Removed a few unnecessary writable accounts. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.2) Release 0.8.2 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.2.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.2.zip) * Added Meteora DAMM V2 support. You can add with `meteora_dammv2_pool_list` . [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.1) Release 0.8.1 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.1.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.1.zip) * Fixed a bug where SolFi pool may not be added correctly with some config combination. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.0) Release 0.8.0 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.0.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.8.0.zip) * Removed kamino\_flashloan * Added buildin `flashloan`. Currently 30 SOL and 5000 USDC is in the flashloan pool. Will slowly increase as more testing conducted. * Added solfi integration(experimental). Solfi is not open sourced, so the quote function the program uses may not have the exact correct calculation. You can add with `solfi_pool_list` . [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.12) Release 0.7.12 ---------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.12.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.12.zip) * Fixed the account check to be writable accounts. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.11) Release 0.7.11 ---------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.11.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.11.zip) * Added error when number of accounts is above 64 [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.10) Release 0.7.10 ---------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.10.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.10.zip) * Added a new tip\_config/compute\_unit\_price strategy `ExponentialRandom`. Similar to Exponential, this is using similar distribution but generate numbers randomly. This can give a better distribution for a large range. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.9) Release 0.7.9 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.9.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.9.zip) * Fixed a bug for [`block_engine_strategy`](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#block_engine_strategy) with multiple ips [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.8) Release 0.7.8 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.8.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.8.zip) * Added a new \[jito\] config [`block_engine_strategy`](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#block_engine_strategy) . It was `OneByOne` before, now you can config it to be `AllAtOnce`. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.7) Release 0.7.7 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.7.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.7.zip) * Added a tip cap of 0.001 SOL when enabling `no_failure_mode`. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.6) Release 0.7.6 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.6.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.6.zip) * Added a new \[jito\] config [no\_failure\_mode](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#jito) . When this is enabled, tx with no profit will not fail. This is also very uuid friendly as you will have a 100% success rate with it. * `use_separate_tip_account` will always be set to true when you add ip\_addresses. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.5) Release 0.7.5 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.5.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.5.zip) * Fixed a bug where min\_profit is being added to jito tip incorrectly. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.4) Release 0.7.4 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.4.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.4.zip) * Fixed issue with pump amm's new onchain program update. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.2) Release 0.7.2 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.2.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.2.zip) * Added a new `memo` config under [\[bot\]](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#bot) * Added support for Raydium CLMM. Now arbs between all dexes are supported. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.1) Release 0.7.1 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.1.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.1.zip) * Fixed a bug with using jito with USDC base mint. The min\_profit was set too high in 0.7.0 [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.0) Release 0.7.0 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.0.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.7.0.zip) * Added new [base\_mint](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#bot) config. You can now arb between USDC/X pools. * Added support for DLMM/Orca Whirlpool, Orca Whirlpool/Orca Whirlpool arb. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.6.6) Release 0.6.6 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.6.6.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.6.6.zip) * Added a new [min\_profit](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#min_profit) config for \[jito\]. You can now use this to prevent landing jito transaction that doesn't cover the gas fee. * Added a new [use\_separate\_tip\_account](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#use_separate_tip_account) config for \[jito\]. This was automatically set to true when you set ip\_addresses previously, but now you need to set it explicitly. * Added a new File strategy for [\[compute\_unit\_price\]](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#compute_unit_price) and [\[tip\_config\]](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#tip_config) . You can now more easily do automation with dynamic compute unit prices/tips. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.6.5) Release 0.6.5 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.6.5.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.6.5.zip) * Fail the command if lookup table creation didn't land. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.6.4) Release 0.6.4 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.6.4.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.6.4.zip) * Do not try to extend when the lookup table don't have enough space left. * Use base64 encoding for rpc sending. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.6.3) Release 0.6.3 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.6.3.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.6.3.zip) * Update jito to use base64 encoding for sending. * Added support for DLMM/DLMM arb. You can now define config with only DLMM pools. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.6.2) Release 0.6.2 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.6.2.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.6.2.zip) * Added `compute_unit_price_for_ata_creation` flag under bot. See [`bot`](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#bot) section for more info. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.6.1) Release 0.6.1 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.6.1.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.6.1.zip) * Added [`use_min_profit`](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#use_min_profit) flag under jito. By turning this off the onchain program will NOT take your tip amount as min profit, and will land anything that has profit(ignoring tip). * Added more checks for config files. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.6.0) Release 0.6.0 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.6.0.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.6.0.zip) * Add support for Meteora Pool. You can add it with `meteora_damm_pool_list` config. Note: Meteora Pool uses a lot of address, so you always need lookup table when using it. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.5.1) Release 0.5.1 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.5.1.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.5.1.zip) * Switch kamino to use the main pool for flashloan [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.5.0) Release 0.5.0 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.5.0.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.5.0.zip) * Added support for Raydium CLMM(Centralized Liquidity). You can add it with `raydium_clmm_pool_list` config. Note: Arb between Meteora DLMM/Orca whirlpool/Raydium CLMM is not supported yet. * Fix a bug with orca pool refresh. * Added a new `wrap-sol` command to the bot cli. Run `./smb-onchain -h` to see more details. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.4.3) Release 0.4.3 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.4.3.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.4.3.zip) * Fixed a bug with orca pool account layouts when using mege\_mint = false [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.4.2) Release 0.4.2 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.4.2.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.4.2.zip) * Raise the cu limit for token creation. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.4.1) Release 0.4.1 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.4.1.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.4.1.zip) * Fixed a bug with pump pool parsing [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.4.0) Release 0.4.0 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.4.0.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.4.0.zip) * Add Orca whirlpool support. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.9) Release 0.3.9 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.9.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.9.zip) * Fixed a bug where creating token account may fail for some token mints. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.8) Release 0.3.8 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.8.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.8.zip) * Improved success rate for creating token accounts. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.7) Release 0.3.7 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.7.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.7.zip) * Fixed a pump pool parsing bug [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.6) Release 0.3.6 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.6.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.6.zip) * Fix a bug with create-lookup-table not adding the address properly. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.5) Release 0.3.5 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.5.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.5.zip) * Now a file with the name of the address lookup table will be created when you run create-lookup-table cli. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.4) Release 0.3.4 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.4.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.4.zip) * Fixed another pump pool parsing issue [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.3) Release 0.3.3 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.3.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.3.zip) * Fixed pump pool parsing issue for mint Figure [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.2) Release 0.3.2 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.2.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.2.zip) * **\[Breaking\]**: [`compute_unit_price`](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#compute-unit-price) config is now similar to jito tip. You can define it with different strategy. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.1) Release 0.3.1 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.1.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.1.zip) * Fix a bug with lookup table creation. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.0) Release 0.3.0 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.0.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.3.0.zip) * **\[Breaking\]**: To run the bot now you need to call `./smb-onchain run config.toml` * Added a `-h` option to see all the command smb-onchain supports. * Added several address lookup table related command to smb-onchain. See [Address lookup table](https://docs.solanamevbot.com/home/onchain-bot/address-lookup-table) for more details. You can now create and manage your own address lookup table with the smb-onchain cli! * Added a new \[bot\] config [`merge_mint`](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#merge-mint) . This allows you to send one tx to arb multiple mints/pools. This feature is still experimental so please report any issue you saw when using it. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.2.5) Release 0.2.5 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.2.5.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.2.5.zip) * Added more config verification logic. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.2.4) Release 0.2.4 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.2.4.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.2.4.zip) * Added a lot of config verification logic to make trouble shooting easier. * Support byte format wallet private key. e.g `[123, 123, ...]` * **\[BREAKING\]**: `send_rpc_url` is renamed to `send_rpc_urls` and now support multiple sending rpcs. * Added `max_retries` config for \[spam\] [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.2.3) Release 0.2.3 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.2.3.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.2.3.zip) * Added Raydium CPMM support. You can now add Pumpfun swap/Raydium AMM/Raydium CPMM/Meteora DLMM together for the same mint. Just add `raydium_cp_pool_list` to your config. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.2.2) Release 0.2.2 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.2.2.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.2.2.zip) * Slightly improved how CU is used when using kamino. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.2.1) Release 0.2.1 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.2.1.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.2.1.zip) * Added back raydium support. You can now add pump swap/raydium amm/meteora dlmm together for the same mint. * Added [`compute_unit_limit`](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#bot) config under \[bot\]. This is now a required param. * A lot of bug fixes on how the optimal trade size is calculated. The calculation now is much more accurate. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.2.0) Release 0.2.0 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.2.0.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.2.0.zip) * Added pump fun swap support. **NOTE**: This version does not support raydium anymore. It will be added back later. If you want to use the bot for raydium/dlmm please use 0.1.3 instead. **NOTE**: As this is the first release for pump fun swap support, it's expected to have a lot of bugs. If you are not comfortable testing a beta release please wait until it gets more stable. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.1.3) Release 0.1.3 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.1.3.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.1.3.zip) * Fixed a bug with CIDR format ips * Removed skip\_prefight config * Added `enable_simple_send` config. You should only set this to true if the default sending doesn't work for you. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.1.2) Release 0.1.2 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.1.2.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.1.2.zip) * Allow http connection for jito url. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.1.1) Release 0.1.1 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.1.1.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.1.1.zip) * Fix a bug where tx send through jito may not cover the cost of basic gas. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.1.0) Release 0.1.0 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.1.0.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.1.0.zip) * **\[Breaking change\]**: tip\_amount is removed. Now a new [tip config](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#tip-config) is used instead. * Added more logs. * ips for jito now will be used in random orders. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.0.12) Release 0.0.12 ---------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.0.11.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.0.11.zip) * Fixed a bug for sending with jito. * Added more log for jito. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.0.11) Release 0.0.11 ---------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.0.11.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.0.11.zip) * Improved sending speed [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.0.10) Release 0.0.10 ---------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.0.10.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.0.10.zip) * Add jito uuid support * Add jito multiple ips support * Add better error handling * Add config for `skip_preflight` [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.0.9) Release 0.0.9 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.0.9.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.0.9.zip) * Added [kamino flashloan support](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations#kamino-flashloan) . [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.0.8) Release 0.0.8 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.0.8.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.0.8.zip) * Support multiple meteora dlmm pool in one mint. You will need to set an address lookup table if you use more than two dlmm pool. see [Bot configurations](https://docs.solanamevbot.com/home/onchain-bot/bot-configurations) for more details * Jito now works with single ip. It still doesn't work with ip rotation setup locally yet. * Fix a bug with dlmm refresh. [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.0.7) Release 0.0.7 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.0.7.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.0.7.zip) * Added key encryption * Fix a bug with dlmm bin refresh [](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.0.5) Release 0.0.5 -------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.0.5.zip](https://sourceforge.net/projects/solanamevbotonchain/files/smb-onchain-0.0.5.zip) * First public version of the onchain bot. See [Getting started](https://docs.solanamevbot.com/home/onchain-bot/getting-started) to see how to use it. [PreviousTrouble shooting](https://docs.solanamevbot.com/home/onchain-bot/trouble-shooting) [NextPerformance tuning](https://docs.solanamevbot.com/home/onchain-bot/performance-tuning) Last updated 12 days ago * [Release 1.0.8](https://docs.solanamevbot.com/home/onchain-bot/releases#release-1.0.8) * [Release 1.0.7](https://docs.solanamevbot.com/home/onchain-bot/releases#release-1.0.7) * [Release 1.0.6](https://docs.solanamevbot.com/home/onchain-bot/releases#release-1.0.6) * [Release 1.0.5](https://docs.solanamevbot.com/home/onchain-bot/releases#release-1.0.5) * [Release 1.0.4](https://docs.solanamevbot.com/home/onchain-bot/releases#release-1.0.4) * [Release 1.0.2](https://docs.solanamevbot.com/home/onchain-bot/releases#release-1.0.2) * [Release 1.0.1](https://docs.solanamevbot.com/home/onchain-bot/releases#release-1.0.1) * [Release 1.0.0](https://docs.solanamevbot.com/home/onchain-bot/releases#release-1.0.0) * [Release 0.15.1](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.15.1) * [Release 0.15.0](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.15.0) * [Release 0.14.4](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.14.4) * [Release 0.14.1](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.14.1) * [Release 0.14.0](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.14.0) * [Release 0.13.9](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.13.9) * [Release 0.13.3](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.13.3) * [Release 0.13.2](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.13.2) * [Release 0.13.1](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.13.1) * [Release 0.13.0](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.13.0) * [Release 0.12.1](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.12.1) * [Release 0.12.0](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.12.0) * [Release 0.11.8](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.11.8) * [Release 0.11.7](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.11.7) * [Release 0.11.6](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.11.6) * [Release 0.11.5](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.11.5) * [Release 0.11.4](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.11.4) * [Release 0.11.3](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.11.3) * [Release 0.11.2](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.11.2) * [Release 0.11.1](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.11.1) * [Release 0.11.0](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.11.0) * [Release 0.10.4](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.10.4) * [Release 0.10.3](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.10.3) * [Release 0.10.2](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.10.2) * [Release 0.10.1](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.10.1) * [Release 0.10.0](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.10.0) * [Release 0.9.8](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.9.8) * [Release 0.9.7](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.9.7) * [Release 0.9.6](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.9.6) * [Release 0.9.5](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.9.5) * [Release 0.9.4](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.9.4) * [Release 0.9.3](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.9.3) * [Release 0.9.2](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.9.2) * [Release 0.9.1](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.9.1) * [Release 0.9.0](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.9.0) * [Release 0.8.9](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.9) * [Release 0.8.8](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.8) * [Release 0.8.7](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.7) * [Release 0.8.6](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.6) * [Release 0.8.5](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.5) * [Release 0.8.4](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.4) * [Release 0.8.3](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.3) * [Release 0.8.2](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.2) * [Release 0.8.1](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.1) * [Release 0.8.0](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.8.0) * [Release 0.7.12](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.12) * [Release 0.7.11](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.11) * [Release 0.7.10](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.10) * [Release 0.7.9](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.9) * [Release 0.7.8](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.8) * [Release 0.7.7](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.7) * [Release 0.7.6](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.6) * [Release 0.7.5](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.5) * [Release 0.7.4](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.4) * [Release 0.7.2](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.2) * [Release 0.7.1](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.1) * [Release 0.7.0](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.7.0) * [Release 0.6.6](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.6.6) * [Release 0.6.5](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.6.5) * [Release 0.6.4](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.6.4) * [Release 0.6.3](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.6.3) * [Release 0.6.2](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.6.2) * [Release 0.6.1](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.6.1) * [Release 0.6.0](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.6.0) * [Release 0.5.1](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.5.1) * [Release 0.5.0](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.5.0) * [Release 0.4.3](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.4.3) * [Release 0.4.2](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.4.2) * [Release 0.4.1](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.4.1) * [Release 0.4.0](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.4.0) * [Release 0.3.9](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.9) * [Release 0.3.8](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.8) * [Release 0.3.7](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.7) * [Release 0.3.6](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.6) * [Release 0.3.5](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.5) * [Release 0.3.4](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.4) * [Release 0.3.3](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.3) * [Release 0.3.2](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.2) * [Release 0.3.1](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.1) * [Release 0.3.0](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.3.0) * [Release 0.2.5](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.2.5) * [Release 0.2.4](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.2.4) * [Release 0.2.3](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.2.3) * [Release 0.2.2](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.2.2) * [Release 0.2.1](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.2.1) * [Release 0.2.0](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.2.0) * [Release 0.1.3](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.1.3) * [Release 0.1.2](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.1.2) * [Release 0.1.1](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.1.1) * [Release 0.1.0](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.1.0) * [Release 0.0.12](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.0.12) * [Release 0.0.11](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.0.11) * [Release 0.0.10](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.0.10) * [Release 0.0.9](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.0.9) * [Release 0.0.8](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.0.8) * [Release 0.0.7](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.0.7) * [Release 0.0.5](https://docs.solanamevbot.com/home/onchain-bot/releases#release-0.0.5) Copy ./smb-onchain create-lookup-table config.toml --write-file Copy GPpkDpzCDmYJY5qNhYmM14c7rct1zmkjWc2CjR5g7RZ1 J6c7noBHvWju4mMA3wXt3igbBSp2m9ATbA6cjMtAUged BjsfwxDu7GX7RRW6oSRTpMkASdXAgCcHnXEcatqSfuuY --- # Releases | SolanaMevBot [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.35) Release 1.3.35 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.35.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.35.zip) * Update jup to [v6.0.47](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.47) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.34) Release 1.3.34 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.34.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.34.zip) * Use base64 for jito encoding. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.33) Release 1.3.33 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.33.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.33.zip) * Switch kamino to use main market. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.30) Release 1.3.30 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.30.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.30.zip) * Update jup to [v6.0.44](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.44) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.27) Release 1.3.27 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.27.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.27.zip) * Added [`SENDING_COOLDOWN`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#sending_cooldown) param under BASE\_MINT. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.26) Release 1.3.26 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.26.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.26.zip) * Update jup to [v6.0.43](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.43) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.25) Release 1.3.25 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.25.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.25.zip) * Remove `INTERMEDIUM_MINT_COUNT_FROM_JUPITER_TRENDING` as jupiter no longer provide the api for it. * Ignore `MAX_TIP` when it's set to 0(default) * Fixed a bug where `SKIP_SAME_OPPORTUNITY` only works when `ENABLE_FIXED_SIZE_OPTIMIZATION` is set to true. Now it will work in either case. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.24) Release 1.3.24 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.24.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.24.zip) * Update jup to [v6.0.42](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.42) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.23) Release 1.3.23 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.23.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.23.zip) * Fixed a JITO override bug with fixed-range params [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.22) Release 1.3.22 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.22.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.22.zip) * Added a new [`IP_LIST`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#ip_list) param. You can use this to manually select which ips to use for jito. * Added [`TEMPORAL_REGION_LIST`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_region_list) , [`NEXTBLOCK_REGION_LIST`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_region_list) , [`BLOXROUTE_REGION_LIST`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_region_list) . You can use them to send to multiple regions for a provider. * Small improvements on logs. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.21) Release 1.3.21 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.21.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.21.zip) * Added two new jito [TIP\_STRATEGIES](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#tip_strategies) : `static-list`, `fixed-range` * Added build in support for multiple ip. Added a new config [`ENABLE_MULTIPLE_IP_ADDRESSES_FOR_JITO`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_multiple_ip_addresses_for_jito) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.20) Release 1.3.20 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.20.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.20.zip) * Update jup to [v6.0.41](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.41) * Added a `version.txt` for easier automation support. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.19) Release 1.3.19 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.19.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.19.zip) * Fix a ledger bug for new account. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.18) Release 1.3.18 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.18.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.18.zip) * Add proper ledger account recovery when bot started. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.17) Release 1.3.17 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.17.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.17.zip) * Fixed a bug where jito tip transfer may not show up correctly when using separate tip wallet. * Updated fee accounts [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.16) Release 1.3.16 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.16.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.16.zip) * Fix the bug where fixed strategy doesn't work well with static * Added additional safe guard to prevent future bugs [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.14) Release 1.3.14 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.14.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.14.zip) * Added a new flag [`ENABLE_FIXED_SIZE_OPTIMIZATION`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_fixed_size_optimization) . See the link for details * Small bug fixes for validations. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.13) Release 1.3.13 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.13.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.13.zip) * Update jup to [v6.0.40](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.40) * Cleanup some logs and validation * Added new `BLOXROUTE_REGION` : amsterdam [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.12) Release 1.3.12 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.12.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.12.zip) * Added support for third party Jupiter API * Added new config [`JUPITER_API_KEY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jupiter_api_key) . If your provider uses `x-api-key` in the header, you can set it with this. E.g. Shyft * Added new config [`SKIP_JUPITER_TOKEN_LIST_CHECK`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#skip_jupiter_token_list_check) . Some provider does not expose their /tokens Jupiter api call, in such case you can set this to true to get around it. E.g. Shyft * Added new config [`ADDITIONAL_JUPITER_URL_PARAMS`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#additional_jupiter_url_params) . If your provider uses url params for api key, you can set it with this. E.g. `apikey=123456` [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.11) Release 1.3.11 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.11.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.11.zip) * Fix a bug for backrun, where if you don't put in base mint as intermedium, it will not fetch the correct markets. * Cleanup some log [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.10) Release 1.3.10 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.10.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.10.zip) * Handle tx too large error gracefully [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.9) Release 1.3.9 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.9.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.9.zip) * Removes a hard trade size cap for backrun [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.8) Release 1.3.8 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.8.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.8.zip) * Fix a jito bug where the profit may not cover the basic gas * Fast key is deprecated, you should use `CIRCULAR_API_KEY` now if you are using the priority queue of Fast to send. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.7) Release 1.3.7 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.7.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.7.zip) * Upgrade default jup to [v6.0.39](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.39) * [BLOCK\_ENGINES](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#block_engines) now also accept urls. You can now use custom endpoints more easily. For example, you can use [https://ny.mainnet.block-engine.jito.wtf/api/v1/](https://ny.mainnet.block-engine.jito.wtf/api/v1/) for the official ny endpoint now instead of `ny` [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.5) Release 1.3.5 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.5.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.5.zip) * Added a new config [`INTERMEDIUM_MINT_COUNT_FROM_JUPITER_TRENDING`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_count_from_jupiter_trending) * Optimize memo instruction. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.3) Release 1.3.3 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.3.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.3.zip) * Bug fix that sometimes may quoting from the same pool twice [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.1) Release 1.3.1 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.1.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.1.zip) * Improve how bot create ledger account on first time start. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.0) Release 1.3.0 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.0.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.3.0.zip) * Updated to use a new onchain program. Now an account will be created the first time you run the bot, which will cost ~0.001 SOL. The bot will no longer creating a temp account in every tx. This also brings some nice optimization and reduced the overall size of the transaction. * New flashloan provider: [`kamino`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#kamino) . There is no fee for kamino flashloan, so you can go as high as the kamino vault allows. All three base mints SOL/USDC/USDT are supported. This does increase the CU by about 80,000, and may generate too large of a tx if you are using direct only false. Example tx: [https://solscan.io/tx/3o83KouSGE2tYzm7FgrPyXDpQozcytwEDZ8g1UBBn6aUrJoRXQmQUz2d56iHymmobCGy54YhKF9DKzxPnAHxLxEj](https://solscan.io/tx/3o83KouSGE2tYzm7FgrPyXDpQozcytwEDZ8g1UBBn6aUrJoRXQmQUz2d56iHymmobCGy54YhKF9DKzxPnAHxLxEj) * Update the script to support http://127.0.0.1 as the local jupiter url. * Support `SolFi` for backrun [DEXES\_TO\_MONITOR](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#dexes_to_monitor) * Added new config [INTERMEDIUM\_MINT\_FROM\_FILES](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_from_files) , which takes a list of files and merge the mints in them * Added new config [INTERMEDIUM\_MINT\_LIST](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_list) , which is just a list of mints. You no longer need to create a file if you just want to run a few mints manually selected. * Bug fixes [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.2.3) Release 1.2.3 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.2.3.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.2.3.zip) * Added a new config `FIXED_SIZE` to backrun `TRADE_CONFIGS`. Example: [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.2.2) Release 1.2.2 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.2.2.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.2.2.zip) * Improved market fetching logic. Now it should be very fast. * Fixed a bug that sometimes unnecessary instruction may be added to tx. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.2.1) Release 1.2.1 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.2.1.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.2.1.zip) * Upgrade default jup to [v6.0.37](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.37) * Added a new config [`MAX_WRAP_SOL_COMPUTE_UNIT_PRICE`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#max_compute_unit_price) . This can be handle when the network is super congested. * Added more integration with Circular([https://www.circular.bot/ref/SMB](https://www.circular.bot/ref/SMB) ) * Added a new config `CIRCULAR_API_KEY` * Updated params in `INTERMEDIUM_MINT_FROM_CIRCULAR` * Added a new config `ENABLE_CIRCULAR_MARKET_CACHE` under `Jupiter`. * Removed rate limit for NextBlock and Bloxroute with your own key * Bug fix for USDC base mint [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.2.0) Release 1.2.0 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.2.0.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.2.0.zip) * Bot now uses 8 different fee wallet instead of 1. Each transaction will pick a random one to send fee. * Update temporal to adopt their new fee addresses. Also updated the regions that is available to temporal. Supported regions now: `pit1` ,`ams1`, `fra2` ,`ewr1` [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.1.8) Release 1.1.8 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.1.8.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.1.8.zip) * Fix a bug with token 2022 mints [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.1.7) Release 1.1.7 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.1.7.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.1.7.zip) * Added a new supported region `germany` to [`BLOXROUTE_REGION`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_region) * Added a new [`TIP_STRATEGIES`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#tip_strategies) [`fixed-list`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fixed_tip_list) * Small bug fixes [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.1.6) Release 1.1.6 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.1.6.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.1.6.zip) * Fix a bug with [`INTERMEDIUM_MINT_COUNT_FROM_JUPITER`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_count_from_jupiter) * Added a new config [`INCLUDED_DEXES`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#included_dexes) , note you can only set one of `INCLUDED_DEXES` and `EXCLUDED_DEXES` not both. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.1.5) Release 1.1.5 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.1.5.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.1.5.zip) * Fixed a bug with token-2022 mints [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.1.3) Release 1.1.3 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.1.3.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.1.3.zip) * Added support of `la`/`tokyo` region for BLOXROUTE\_REGION. * Fix a bug with [`INTERMEDIUM_MINT_COUNT_FROM_JUPITER`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_count_from_jupiter) * Improved the speed of market updates for backrun strategy. * Added a new supported backrun strategy `DEXES_TO_MONITOR`: `LifinityV2` [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.1.2) Release 1.1.2 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.1.2.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.1.2.zip) * `./run.sh` now can take a param as the config you use. This can make it easier to switch between different configs. example: `./run.sh config.jito.yaml` * Added a new config [`INTERMEDIUM_MINT_COUNT_FROM_JUPITER`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_count_from_jupiter) . This is only useful when you connect to a remote Jupiter. Example usage is running multiple bot with the same Jupiter server. * Added a new option to only send through jito for several sending venders: * [NEXTBLOCK\_JITO\_ONLY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_jito_only) * [FAST\_JITO\_ONLY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fast_jito_only) * [BLOXROUTE\_JITO\_ONLY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_jito_only) * Add support for sending through Jito GRPC. You should only look into this if you have a Jito GRPC key. See [`ENABLE_JITO_GRPC`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_jito_grpc) for more detail. * Bug fixes [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.1.0) Release 1.1.0 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.1.0.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.1.0.zip) * Update how static/fixed tip strategy work when `USE_SEPARATE_TIP_ACCOUNT` is enabled to better prepare for jito's update. It's now static tipping when you use static/fixed tip strategy with `USE_SEPARATE_TIP_ACCOUNT` * Upgrade the default jupiter version to [v6.0.35](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.35) * Small bug fixes [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.26) Release 1.0.26 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.26.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.26.zip) * Fix a bug with `run-jup.sh` not respecting `AUTO_RESTART` [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.25) Release 1.0.25 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.25.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.25.zip) * Fixed a bug with `MIN_COMPUTE_UNIT_PRICE` * Fixed a bug with max trade size when using `TRADE_SIZES` * Added a new param [`COMPUTE_UNIT_LIMIT_MULTIPLIER`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#compute_unit_limit_multiplier) . * Update how the default compute unit limit is calculated. * Added a new `TRADE_RANGE_STRATEGY`: `exponential`. For example for range 10-1000, with a count 5, it will generate the following trade sizes: \[10, 77, 315, 668, 1000\] [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.24) Release 1.0.24 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.24.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.24.zip) * Added config to hide vender failure logs. `TEMPORAL_SHOW_SENDING_ERROR`, `NEXTBLOCK_SHOW_SENDING_ERROR`, `FAST_SHOW_SENDING_ERROR` * Added config to set max fee for venders. `BLOXROUTE_MAX_DYNAMIC_FEE`, `TEMPORAL_MAX_DYNAMIC_FEE`, `FAST_MAX_DYNAMIC_FEE`, `NEXTBLOCK_MAX_DYNAMIC_FEE` * Bug fixes [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.23) Release 1.0.23 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.23.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.23.zip) * Fix a bug with memo for Fast transactions [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.22) Release 1.0.22 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.22.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.22.zip) * Added a new sending vender [Fast](https://docs.fast.circular.bot/fast-docs) . See the [FAST](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fast) config for how to set it up. Visit their discord to obtain a key. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.21) Release 1.0.21 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.21.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.21.zip) * Fixed some small issue introduced with 1.0.20 [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.20) Release 1.0.20 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.20.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.20.zip) * Optimize jupiter quote time, you should see at least 10% improvement on the quote time. * Added a new config [`JUPITER_WORKER_COUNT`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jupiter_worker_count) to config how many workers(thread) to use for fetching from Jupiter. * Optimize 3hop quote logic, you should see a much better quote time now compare to previously. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.19) Release 1.0.19 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.19.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.19.zip) * Fixed a bug with JITO/SPAM override * Fixed a bug with max tip not applied for static tip * Optimized compute unit * Added a new config [MIN\_COMPUTE\_UNIT\_PRICE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#min_compute_unit_price) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.18) Release 1.0.18 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.18.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.18.zip) * Added a new feature [INTERMEDIUM\_MINT\_FILTER](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_filter) . This is useful when you run multiple machines and want to use different mints for them. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.17) Release 1.0.17 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.17.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.17.zip) * Added a new experimental feature [BIND\_IP](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bind_ip) . If your server has multiple public ips you can set it with the config to have more jito rate limit, do remember to use this together with [USE\_SEPARATE\_TIP\_ACCOUNT](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_separate_tip_account) * You can now set the fee paid to sending venders BloXRoute/NextBlock/Temporal based on your projected profit. Check the according config docs * [BLOXROUTE\_DYNAMIC\_FEE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_dynamic_fee) , [BLOXROUTE\_DYNAMIC\_FEE\_BP](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_dynamic_fee_bp) * [NEXTBLOCK\_DYNAMIC\_FEE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_dynamic_fee) , [NEXTBLOCK\_DYNAMIC\_FEE\_BP](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_dynamic_fee_bp) * [TEMPORAL\_DYNAMIC\_FEE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_dynamic_fee) , [TEMPORAL\_DYNAMIC\_FEE\_BP](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_dynamic_fee_bp) * Added a new script [upgrade-jup.sh](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/common-workflow#upgrade-downgrade-jupiter-api-version) so you can upgrade/downgrade jupiter versions as you wish. * If you have API key from circular.bot, you can now directly use their api with the bot. See [INTERMEDIUM\_MINT\_FROM\_CIRCULAR](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_from_circular) * Bug fixes [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.16) Release 1.0.16 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.16.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.16.zip) * Support a new 3rd party send transaction provider [TEMPORAL](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal) . Check config doc for more details. [https://use.temporal.xyz/](https://use.temporal.xyz/) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.15) Release 1.0.15 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.15.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.15.zip) * Fixed a bug of displaying the wrong number for opportunities. * Added [`RESTRICT_INTERMEDIATE_TOKENS`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#restrict_intermediate_tokens) option under `JUPITER`. See docs for more detail [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.14) Release 1.0.14 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.14.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.14.zip) * More jupiter optimization. Should see less RPC calls and slightly faster speed for jupiter quote. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.13) Release 1.0.13 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.13.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.13.zip) * The failed intermedium mints feature is now not enabled by default. You can turn it on by setting [`FILTER_FAILED_INTERMEDIUM_MINTS`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#filter_failed_intermedium_mints) . [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.12) Release 1.0.12 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.12.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.12.zip) * Update Jup to [v6.0.34](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.34) * Optimization for tx instructions [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.11) Release 1.0.11 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.11.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.11.zip) * Fix a bug with default value for `ROUTE_TYPES` [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.10) Release 1.0.10 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.10.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.10.zip) * Handle ata fetch error gracefully [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.9) Release 1.0.9 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.9.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.9.zip) * The bot will now remove intermedium mints that keep failing to quote for 50 times in a row. * A new config [`ROUTE_TYPES`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#route_types) for `BLIND_QUOTE_STRATEGY` is added. This allows similar routes like setting [`USE_DIRECT_ROUTE_ONLY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_direct_route_only) to false, but with a much faster quote time. Read the doc for more details and example. * Fix a bug with helius where it shouldn't fetch when it's not enabled [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.8) Release 1.0.8 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.8.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.8.zip) * Starting from 1.0.8 the bot will encrypt your private key into a file called `ENCRYPT_PRIVATE_KEY` on your first run, and ask you to remove your private key config once it's created. Though this is not 100% bullet proof but it does make it harder for hackers to get access to your key on the vps. You can disable this behavior by setting the [`ENCRYPT_PRIVATE_KEY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#encrypt_private_key) to false. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.7) Release 1.0.7 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.7.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.7.zip) * Support custom BloXRoute key. You can now set [`BLOXROUTE_KEY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_key) to use your own key with no rate limit. * Support a new 3rd party send transaction provider [`NEXTBLOCK`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock) . Check config doc for more details. [https://nextblock.io/](https://nextblock.io/) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.6) Release 1.0.6 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.6.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.6.zip) * Fix a bug for how max trade size is loaded. * Fix a bug for `kill-jup.sh` script that it does not load the correct local port. * Fix a bug for how intermedium mints are loaded for backrun strategy. * BloXRoute rate limit is now set to 10/s, as we have more and more people using it. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.5) Release 1.0.5 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.5.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.5.zip) * Fix a bug introduce with 1.0.4 for blockhash [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.4) Release 1.0.4 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.4.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.4.zip) * Cleanup logs * Fix a bug that may ocassionally cause jito fail to send [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.3) Release 1.0.3 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.3.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.3.zip) * Fix a bug with max trade size * Some log improvements [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.2) Release 1.0.2 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.2.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.2.zip) * Add validation for `TRADE_SIZES`, which was `TRADE_SIZE` in 0.3.x versions. * Update example to reflact the latest changes. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.1) Release 1.0.1 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.1.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.1.zip) * Fixed a bug that will crash the bot with INVALID\_URL when YELLOWSTONE\_URL is not set * Make helius error more clear * Small bug fixes [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.0) Release 1.0.0 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.0.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-1.0.0.zip) This is a big release with multiple breaking changes. Please read the release note here carefully before upgrading. You can use the example config inside [bot configuration](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations) page or the `config.yaml.example` file come with the bot as a reference. 1.0.0 introduced a new strategy [`BACKRUN_STRATEGY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#backrun_strategy) , which introduces a whole new way to find opportunities. The [82 SOL arb](https://solscan.io/tx/39u6y9isQvL776ZpFri9DRQxkckTdE36adwYnFT9QSv9PBCc7KWBy3Pf5y2Emy8bYwfKNMi98tg7RMDezGqHLFNL) is landed with this new strategy. Read the docs on the strategy to learn more. The old way of running the bot is now renamed into [`BLIND_QUOTE_STRATEGY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#blind_quote_strategy) . Changes to old config * [`BASE_MINTS`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#base_mints) is now moved under [`BLIND_QUOTE_STRATEGY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#blind_quote_strategy) * [`SPAM_FEE_BPS`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#spam_fee_bps) and [`PRIORITY_FEE_PERCENTILE`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#priority_fee_percentile) is now moved to [`SPAM`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#spam) * `BIRDEYE_API_KEY` is deprecated. You no longer need it to get birdeye tokens. * [`PROCESS_DELAY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#process_delay) is moved to [`BASE_MINTS`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#base_mints) under [`BLIND_QUOTE_STRATEGY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#blind_quote_strategy) * `MAX_PRIORITY_FEE` is moved to `SPAM` and renamed to `MAX_COMPUTE_UNIT_PRICE` * `MIN_PROFIT` is renamed to [`MIN_QUOTE_PROFIT`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#min_quote_profit) * `SKIP_SAME_OPPORTUNITY` is now moved under [`BLIND_QUOTE_STRATEGY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#blind_quote_strategy) * `TRADE_SIZE` is rename to `TRADE_SIZES` Other changes with the release * Update jupiter api to [v6.0.33](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.33) * Improved how jupiter quote works to slightly speed up the quote latency * Added a new field [`PRIORITY_FEE_STRATEGY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#priority_fee_strategy) . You now need to specifically set which strategy you use similar to jito tip. * Added a new [`BLOXROUTE_FEE`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_fee) field inside [`BLOXROUTE`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute) . You can now increase the BloXRoute fee you pay * Added a new [`ENABLE_SENDING_LOG`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_sending_log) field inside [`LOGGING`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#logging) . You can now turn off the sending logs in your output. * Added a new [`MEMO`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#memo-1) field inside [`BLIND_QUOTE_STRATEGY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#blind_quote_strategy) . This will override the `MEMO` under `BOT`. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.14) Release 0.3.14 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.14.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.14.zip) * Added [`DOWNLOAD_RPC_URL`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#download_rpc_url) and [`DOWNLOAD_RPC_RATE_LIMIT_PER_SECOND`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#download_rpc_rate_limit_per_second) param to get around the rpcs that does not support transaction history. You can use a free helius plan now for this. * Cleanup some logs. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.13) Release 0.3.13 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.13.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.13.zip) * Update jupiter api to [v6.0.32](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.32) * Added three JUPITER config: [`TOTAL_THREAD_COUNT`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#total_thread_count) , [`WEBSERVER_THREAD_COUNT`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#webserver_thread_count) , [`UPDATE_THREAD_COUNT`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#update_thread_count) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.12) Release 0.3.12 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.12.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.12.zip) * Added a new way to fetch intermedium tokens [`INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE_TRENDING`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_count_from_birdeye_trending) . You do not need birdeye api to fetch this, this is fetched from bot's own backend. This list has new mints faster than the original birdeye 24h volume list. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.11) Release 0.3.11 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.11.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.11.zip) * Update jupiter api to [v6.0.31](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.31) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.10) Release 0.3.10 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.10.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.10.zip) * Added a new [`TIP_STRATEGIES`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#tip_strategies) field to JITO config. Together with [`STATIC_TIP_BP`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#static_tip_bp) as a new param. Read the configuration doc for more details. * **Breaking**: `JITO_TIP_BP` is now renamed to [`DYNAMIC_TIP_BP`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#dynamic_tip_bp) . `JITO_TIP_BP` will still work for now, but changing the name is recommended. * Fix some config override bug with JITO\_UUID and BLOCK\_ENGINE. * Cleanup some logs [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.9) Release 0.3.9 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.9.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.9.zip) * Update jupiter api to [v6.0.30](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.30) . market mode `europa` may finally be possible to run. * Fixed a bug with `USE_DIFFERENT_TX_FOR_SENDERS` + flashloan. * MEMO now also works for flashloan enabled tx * Added a new config [`PAY_FEE_WITH_PROFIT`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#pay_fee_with_profit) . When enabled, for SOL base mint, bot will pay the jito tip/bot fee using your profit. This will allow catching bigger opportunitiese even when you don't have enough SOL balance to pay for jito tip. ![](https://docs.solanamevbot.com/home/~gitbook/image?url=https%3A%2F%2F3811539071-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fx2rxpD03KDvMgJqIkdla%252Fuploads%252F2kRcFoBsiJWY8fpEbMwt%252FScreenshot%25202024-10-25%2520at%252012.26.07%25E2%2580%25AFAM.png%3Falt%3Dmedia%26token%3D8ba84984-e277-4478-8ae7-edbbfd9d3018&width=768&dpr=4&quality=100&sign=4bbf070&sv=2) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.8) Release 0.3.8 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.8.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.8.zip) * Fixed a bug with `USE_DIFFERENT_TIP_ACCOUNT_FOR_BLOCK_ENGINES`, where jito will fail to send if this is enabled. * Cleanup some debug logs. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.7) Release 0.3.7 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.7.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.7.zip) * Added feature to ./upgrade.sh. You can now upgrade/downgrade to a specific version by running it with the version number. If you want to download version 0.3.3, you can run `./upgrade.sh 0.3.3` * Added a new jito config `USE_DIFFERENT_TIP_ACCOUNT_FOR_BLOCK_ENGINES`. This will use different tip account for different block engines, in theory increase your chance to land. * Small bug fixes [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.6) Release 0.3.6 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.6.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.6.zip) * Fixed a bug with `COMPUTE_UNIT_PRICE` not being set when simulation is on. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.5) Release 0.3.5 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.5.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.5.zip) * Fix a bug with some spam configs not taking effect correctly * Change the default `COMPUTE_UNIT_PRICE` value to 0 * Move `ENABLE_JITO_RPC` to bot config * Added a yaml config format checker on start * Increase compute unit price when retrying wrap sol to increase the success rate during congested time. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.4) Release 0.3.4 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.4.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.4.zip) * **Breaking**: Changed format of [`INTERMEDIUM_MINT_FROM_ADDRESSES`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_from_addresses) , now it takes an additional param `MAX_MINT_COUNT`, See [Bot configurations](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_from_addresses) for more details. This will allow more targeted strategy like only try to arb the mints with the most arbs possible. * `USE_DIFFERENT_TX_FOR_BLOCK_ENGINES` is now deprecated. Bot will always send different tx to different block engines. * Added a new JITO config [`MAX_TIP`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#max_tip) * Added a new JITO config [`FIXED_TIP`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fixed_tip) . Note this is NOT sharing the jito rate limit as using `JITO_TIP_BP`, and can be config together with `JITO_TIP_BP` or alone by itself. * Fix a bug with [`INTERMEDIUM_MINT_FROM_ADDRESSES`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_from_addresses) that some address failed to load. * Optimize the logic for [`INTERMEDIUM_MINT_COUNT_FROM_GECKO`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_count_from_gecko) . Note [`INTERMEDIUM_MINT_COUNT_FROM_GECKO`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_count_from_gecko) can only return ~20-30 mints at maximum due to their limitation on the api. * Show log for `run-jup.sh` script. * Added a new capability to override JITO/SPAM config within BASE\_MINT, see [config override](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#config-override) for more details. This basically allows you to override the global value for each base mint you define. Here's an example that override the `JITO_TIP_BP` value for this specific base mint config. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.3) Release 0.3.3 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.3.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.3.zip) * Fixed a bug for migrating `TRADE_SIZE` * Fixed a bug with `INTERMEDIUM_MINT_COUNT_FROM_GECKO` [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.2) Release 0.3.2 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.2.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.2.zip) * Fixed a bug with starting jupiter. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.1) Release 0.3.1 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.1.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.1.zip) * Change to some default values so the config values are more consistent: `ENABLE_JITO` now default to false. `INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE` now default to 0. * Cleanup some logs. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.0) Release 0.3.0 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.0.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.3.0.zip) * Upgrade Jupiter api to [v6.0.29](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.29) * **Breaking**: deprecate `.env` and `base-mint.json`. Now all configs goes into `config.yaml`. As the bot evolves the old way to config settings are messy and not scalable. The introduction of this new config format allows more structured config file, comments in the example, better readability for lamports, and more flexibility in the future. Now every possible configs are in `config.yaml.example` with the default value visible to users so it's easier to know what is configurable at first glance. For easier migration the bot provides a new binary you can run `./migrate`, which will generate a `config.yaml` file for you based on your old `.env` and `base-mint.json`. See the updated [Bot configurations](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations) page for more details. * **Breaking**: New `INTERMEDIUM_MINTS` config. This consolidate some of the old configs under one umbrella for better understanding. Now instead of a given name for `intermedium-mints.json` and `exclude-mints.json`, you have to specifically set a file name for the same purpose. More details see [`INTERMEDIUM_MINTS`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mints) . * Added a new way to fetch `INTERMEDIUM_MINTS` : `INTERMEDIUM_MINT_FROM_ADDRESSES`. This allow you to copy trade other top players' mints for their most recent transactions. More details see [`INTERMEDIUM_MINT_FROM_ADDRESSES`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_from_addresses) * **Breaking**: `BIRDEYE_API_KEY` no longer has a default value. You have to use your own now. * **Breaking**: `INTERMEDIUM_MINT_COUNT_FROM_NEW_TOKENS` is renamed to [`INTERMEDIUM_MINT_COUNT_FROM_GECKO`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_count_from_gecko) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.22) Release 0.2.22 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.22.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.22.zip) * Update `run-jup.sh` to incorporate the latest logic to start jupiter server. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.21) Release 0.2.21 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.21.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.21.zip) * Fixed a bug with `USE_SEPARATE_TIP_ACCOUNT` [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.20) Release 0.2.20 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.20.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.20.zip) * Fixed a bug with `MARKET_MODE`. Also change the default value for it to `remote`. * Cleanup some log on start. * Update how `USE_SEPARATE_TIP_ACCOUNT` works so it can now work on smaller profits. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.19) Release 0.2.19 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.19.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.19.zip) * Upgrade jupiter to [v6.0.28](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.28) . Specifically now newly streamed markets will also be added to jup if it's in your mint list. * Added a new env `MARKET_MODE`. Default value `europa`. Note the default behavior here will stream new markets for your mint list to Jupiter, but it can be very heavy for some RPC to handle. You can change it to `remote` to disable this behavior. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.18) Release 0.2.18 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.18.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.18.zip) * Added a new .env config `USE_SEPARATE_TIP_ACCOUNT`. When this is enabled, a new solana address will be used to send tip in its own tx instead of sending to jito directly for every jito transaction. Jito currently is rate limiting bundles based on the accounts in the tx that does the tip. This is useful when you have machines in multiple locations but still trying to use the same wallet to run the bot. Example transaction: [https://solscan.io/tx/41CBfg3cg1eKvxgJHJ7TqhmrGJ73BxikDVALV7SQYM4FmMqt22Cfpc18f5bErATSUoTDccKtFSVpGQe1WvMr1b9f](https://solscan.io/tx/41CBfg3cg1eKvxgJHJ7TqhmrGJ73BxikDVALV7SQYM4FmMqt22Cfpc18f5bErATSUoTDccKtFSVpGQe1WvMr1b9f) Note: this is an experimental feature and I'm still testing how good this is to get around the jito limitation. Please report in discord if you run into any issues. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.17) Release 0.2.17 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.17.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.17.zip) * Remove minimum SOL requirement for flashloan * Remove marginfi as a provider [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.16) Release 0.2.16 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.16.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.16.zip) * Remove `USE_SHARED_INTERMEDIUM_ACCOUNTS` as it's not a working config. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.15) Release 0.2.15 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.15.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.15.zip) * Add a new .env config `SHOW_JITO_LOGS`, default to false. When enabled, it will show the response for the jito bundle requests. This is helpful if you are trying to see how often you are hitting the jito's rate limit. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.14) Release 0.2.14 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.14.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.14.zip) * Fixed a bug in run.sh [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.13) Release 0.2.13 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.13.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.13.zip) * Upgrade Jupiter api to [v6.0.27](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.27) . The old Jupiter versions will no longer be updated with new mints and markets. So make sure you upgrade to this asap. * **BREAKING**: EXCLUDED\_DEXES now need to be the address of the market instead of the name. If you didn't modify this in your .env you can ignore this. * **BREAKING**: USE\_LOCAL\_MARKET\_CACHE now has a different format and url, if you are using it make sure you download from the new link. Otherwise you can ignore this. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.12) Release 0.2.12 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.12.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.12.zip) * Added a new param JITO\_UUID. If you get a custom uuid from jito, you can set it here to have a higher rate limit. The default rate limit is 5/s/ip * The Jito rate limit for all bot users are reverted unfortunately, Jito has a bug on their end that caused the uuid to cap on all usage instead of per ip. This unfortunately set back the rate limit back to 5/s for jito. But old versions have a worse performance now due to this issue. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.11) Release 0.2.11 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.11.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.11.zip) * Fixed a bug that introduced by Jupiter which will cause all quotes to fail with `WARN tower_http::trace::on_failure: response failed classification=Status code: 500 Internal Server Error latency=0 ms` * Fixed a bug in `.env.example` [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.10) Release 0.2.10 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.10.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.10.zip) * Fix a bug with opportunity count * Fix a typo with base-mint example [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.9) Release 0.2.9 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.9.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.9.zip) * Added a .env config `USE_SHARED_INTERMEDIUM_ACCOUNTS`. Default to false. When enabled, it will not create intermedium token accounts in your wallet, instead it will use a shared one provided by jupiter. This is very useful if you don't want to have hundreds of token accounts opened in your wallet. Note this may slightly reduce your landing rate as if the token is very popular the shared accounts may be locked by other Jupiter users * Fixed a bug with `SKIP_SAME_OPPORTUNITY` * Cleanup some logs [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.8) Release 0.2.8 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.8.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.8.zip) * Added a .env config `SKIP_SAME_OPPORTUNITY`, when enabled and you are using fixed trade size(either using tradeSize or tradeRange with linear strategy), the bot will check if it's the same as last time and not generate a new opportunity for it if it's the same. * Raise bloXroute rate limit to 20/s * Due to a recent change of Jito's SendTransaction endpoint, the bot now only send through SendBundle, which will lead to a reduced rate limit of jito to 25 tx/s * Upgrade jupiter-swap-api to [v6.0.25](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.25) * Some log improvements [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.7-rolled-back) Release 0.2.7(Rolled back) -------------------------------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.7.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.7.zip) * Now when you use fixed trade size(either using tradeSize or tradeRange with linear strategy), the bot will check if it's the same as last time and not generate a new opportunity for it if it's the same. * Raise bloXroute rate limit to 10/s * Upgrade jupiter-swap-api to [v6.0.25](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.25) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.6) Release 0.2.6 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.6.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.6.zip) * Remove `JUPITER_TOKEN_COUNT` param. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.5) Release 0.2.5 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.5.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.5.zip) * Update jupiter-swap-api to [v6.0.24](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.24) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.4) Release 0.2.4 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.4.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.4.zip) * Fix a bug where `COMPUTE_UNIT_PRICE` may not work for spam mode. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.3) Release 0.2.3 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.3.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.3.zip) * Jito rate limit raised to 50/s/ip! * Added a new .env config `USE_DIFFERENT_TX_FOR_BLOCK_ENGINES`, default to true. When it's enabled it will send a different tx for each jito block engine * Optimize compute unit limit for jito transactions. `FIXED_COMPUTE_UNIT_LIMIT` now also affects jito transactions. When it's set to 0, a more accurate estimation algorithm will be used. When simulation is enabled, the value from the simulation value +20% buffer will be used. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.2) Release 0.2.2 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.2.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.2.zip) * Add new jito region slc(salt lake city) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.1) Release 0.2.1 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.1.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.1.zip) * Hide Jupiter log with run.sh * Cleanup some logs [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.0) Release 0.2.0 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.0.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.2.0.zip) * Added a new .env config `SPAM_RESTRICT_LEVEL`. Default to 0. Valid values are 0,1,2,3,4,5. This config will try to limit how long a tx land compares to when you send it when using spam. 0 is no restriction, the same behavior as before. 5 is maximum restriction and will only allow the tx to land within ~1-2 slots. Note the exact restriction time for each level can be affected by your RPC's latency and performance. Read the doc for more details about this config. * Added a new config in base-mint.json. `spamFeeBps` . This allows you to set a fixed percentage of your projected profit as your gas fee. Read the doc for more details. * Now if you enable simulation, the Compute Unit will be set based on simulation result with a 15% buffer. This will help to reduce the Compute Unit Limit number and improve landing rate. * Now when you set minProfit = 0 in your base-mint.json file, no profit check will be performed. This is useful when using super spam strategy. * Added a new .env config `PULL_BLOCKHASH_WITH_YELLOWSTONE` , when enabled, will use your Yellowstone to pull blockhash instead of RPC. This can save you a lot of RPC credits. * Added a new .env config `BLOCK_ENGINES`, default to `ny,amsterdam,frankfurt,tokyo` You should not change this unless you know what you are doing. This is list of block engines the bot will send to when using Jito. * The bot now show full compute time, you can have a better how long your jupiter quote takes to help you optimize your bot. * Added a new .env config `MAX_COMPUTE_TIME`. You can set a value and when the bot will not send out tx if the compute time for an opportunity is higher than the value. * Added new .env configs `ENABLE_BLOXROUTE`, and `BLOXROUTE_REGION`. This is useful when you don't have a good rpc for sending when using spam mode. BloXroute will always use staked connection. * Added a new .env config `ENABLE_JITO_RPC`. If you have a Jito RPC this can give you a better estimation of the profit when running simulation. * Added a lot of new logs * `MEMO` config now will NOT add anything to your tx by default. It will only be added when you set a value for it. * Now the bot will NOT call jupiter simulation to get a compute unit limit, instead bot uses a new algorithm to calculate an estimation. * Fix a small bug that may slow down super spam strategy. * Update jupiter-swap-api to [v6.0.23](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.23) * Bug fixes [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.1.8) Release 0.1.8 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.1.8.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.1.8.zip) * Fix version number [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.1.7) Release 0.1.7 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.1.7.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.1.7.zip) * Fix a bug that jito tip for USDC may not be calculated correctly sometimes * Change the output level for run-jup.sh [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.1.6) Release 0.1.6 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.1.6.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.1.6.zip) * Update jupiter-swap-api to [v6.0.20](https://github.com/jup-ag/jupiter-swap-api/releases/tag/v6.0.20) * Added a new param `LOCAL_JUPITER_PORT`, default to 18080. This is for advanced usage, normal user can ignore this change. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.1.5) Release 0.1.5 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.1.5.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.1.5.zip) * Fixed a bug with the `upgrade.sh` script. If you are upgrading from 0.1.4 make sure you run the `upgrade.sh` twice. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.1.4) Release 0.1.4 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.1.4.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.1.4.zip) * Fixed a bug with trade range. If you see a low jup success rate with trade range, this release should fix it. * Added a new script `upgrade.sh` that you can run to upgrade to the latest version. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.1.3) Release 0.1.3 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.1.3.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.1.3.zip) * Removed an unnecessary Jup rpc call. This should save you a lot of rpc credits, and speed up jup quote slightly. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.1.2) Release 0.1.2 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.1.2.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.1.2.zip) * Added a new config `ENABLE_LANDING_LOG`, default to `false`. When this is enabled, it will output an additional `WIN` log when a transaction is landed like in previous version. Though if you turn this on while having ENABLE\_SIMULATION=false, it may consume a lot of your RPC credits, as for each transaction you send, this will call a getTransaction for it to confirm landing. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.1.1) Release 0.1.1 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.1.1.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.1.1.zip) * Fixed a bug with `run.sh` script, now it won't kill your jupiter when you have `DISABLE_LOCAL_JUPITER=true` [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.1.0) Release 0.1.0 ------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.1.0.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.1.0.zip) * `ENABLE_JITO_TRANSACTION` config is now removed. Instead bot will utilize sendTransaction from Jito to send bundles, which will raise the limit of 5/s to 10/s for sending transactions with Jito. * Added a few more optimization tips * Changed fee collecting address * Small bug fixes. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.0.27) Release 0.0.27 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.0.27.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.0.27.zip) This release focus on improvements around ENABLE\_SPAM mode. * New config `MAX_RETRIES`, default to 0. This is a config for [sendTransaction](https://solana.com/docs/rpc/http/sendtransaction) RPC method, Maximum number of times for the RPC node to retry sending the transaction to the leader. The higher this number, the more chance your tx can land, but also lead to high chance of failure, as retried tx is likely too late for the opportunity. * New config `HELIUS_API_KEY`, this is used for fetching lated priority fee. You can get one for free by register an account on [https://www.helius.dev/](https://www.helius.dev/) . * New config `PRIORITY_FEE_UPDATE_INTERVAL` , default to 60. Unit in seconds. This controls how often the priority fee is updated. * Two new fields for base-mint.json * `priorityFeePercentile`, value from 0 to 100(you can set higher than 100 but not recommended). Automatically set COMPUTE\_UNIT\_PRICE based on current priority fee level. You need to set `HELIUS_API_KEY` in order to use this. The bot utilize helius's [priority fee api](https://docs.helius.dev/solana-rpc-nodes/priority-fee-api) , to fetch the latest priority fee levels. The response is something like the following from the api, value map to the response, aka 0 means min, 25 means low, 50 means medium, 75 means high, 100 means veryHigh. If the current response looks like below, and you set 30 as the value for `priorityFeePercentile`, the auto generated COMPUTE\_UNIT\_PRICE would be 10000 + (60082 - 10000) \* ((30 - 25) / 25) = 20016. Note the value for each level will change all the time as market moves. When this is set, it will override the `COMPUTE_UNIT_PRICE` value in .env file. * `maxPriorityFee`. The max COMPUTE\_UNIT\_PRICE you are willing to set. This is helpful to prevent setting a huge priority fee as market moves. Example usage of the config * Improved how transaction is sent, should see slightly better landing rate. * Added a new script `run-jup.sh`, this will only start the Jupiter API and not running the bot. Useful when you want to run Jupiter API on one machine and bots on other machines. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.0.26) Release 0.0.26 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.0.26.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.0.26.zip) * Added a new config `USE_LOCAL_MARKET_CACHE` for Jupiter API. 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=3 -O mainnet.json` [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.0.25) Release 0.0.25 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.0.25.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.0.25.zip) * Fix a bug where wrap/unwrap and balance check is not working in 0.0.24 * Fix a bug where in some corner cases the bot will send an empty tx [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.0.24) Release 0.0.24 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.0.24.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.0.24.zip) * Update the format of base-mint.json to support defining the same base mint for different strategy. Please check [base-mint.json](https://solanamevbot.gitbook.io/home/fundamentals/bot-configurations#base-mint.json) for the new format. The old one will continue to work but if you want to define multiple strategy for the same mint you have to use the new format. * Introducing [trade range](https://solanamevbot.gitbook.io/home/fundamentals/bot-configurations#trade-range) for base-mint.json. Make it easier to customize your strategy. And now you can use random trade size with trade range! * Small bug fixes * Added more logs on bot start [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.0.23) Release 0.0.23 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.0.23.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.0.23.zip) * Added a new optional config file `exclude-mints.json`. It's in the same format as `intermedium-mints.json`, the tokens in the file will be excluded from jup api and intermedium mints. This is useful if your RPC is under a lot of load and couldn't catch up, you can remove USDC/USDT and just run SOL with alt tokens as a different strategy. You may see this error if you exclude USDC, it can be safely ignored: price\_tracker.update\_prices failed with: missing decimals for USDC * \[_**Experimental**_\] Added a new experimental config `INTERMEDIUM_MINT_COUNT_FROM_NEW_TOKENS`, which will fetch new pools opened through geckoterminal and extract the mints used in the pool. This config is still in development. If you want to set this you can try to set it up to 200. One way to use this is with only SOL base mint with no birdeye intermedium tokens/no jupiter\_token\_count, or use `exclude-mints.json` to exclude USDC/USDT for better performance. Default to 0, which means this is not enabled. * \[_**Experimental**_\] Added a new experimental config `FILTER_GECKO_POOLS_FROM_RAYDIUM`, default to true. This config is specifically used together with `INTERMEDIUM_MINT_COUNT_FROM_NEW_TOKENS`, when set to false, it will extract all tokens that has a new pool opened, but a lot of them may only have one amm on raydium, which means there's no arb opportunities for them. When set to true you would probably see around 10-20 new tokens fetched at most. * Update jupiter-swap-api to v6.0.18 [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.0.22) Release 0.0.22 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.0.22.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.0.22.zip) * Added a new config `DISABLE_LOCAL_JUPITER`, when set to true, it will not start the Jupiter API locally. This is useful when you want to run multiple bots on the same machine. * Cleanup some logs [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.0.21) Release 0.0.21 --------------------------------------------------------------------------------------------------------- [https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.0.21.zip](https://sourceforge.net/projects/solanamevbot/files/solana-mev-bot-0.0.21.zip/download) [PreviousTrouble shooting](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/trouble-shooting) [NextFAQ](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/faq) Last updated 7 months ago * [Release 1.3.35](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.35) * [Release 1.3.34](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.34) * [Release 1.3.33](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.33) * [Release 1.3.30](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.30) * [Release 1.3.27](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.27) * [Release 1.3.26](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.26) * [Release 1.3.25](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.25) * [Release 1.3.24](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.24) * [Release 1.3.23](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.23) * [Release 1.3.22](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.22) * [Release 1.3.21](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.21) * [Release 1.3.20](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.20) * [Release 1.3.19](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.19) * [Release 1.3.18](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.18) * [Release 1.3.17](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.17) * [Release 1.3.16](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.16) * [Release 1.3.14](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.14) * [Release 1.3.13](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.13) * [Release 1.3.12](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.12) * [Release 1.3.11](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.11) * [Release 1.3.10](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.10) * [Release 1.3.9](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.9) * [Release 1.3.8](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.8) * [Release 1.3.7](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.7) * [Release 1.3.5](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.5) * [Release 1.3.3](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.3) * [Release 1.3.1](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.1) * [Release 1.3.0](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.3.0) * [Release 1.2.3](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.2.3) * [Release 1.2.2](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.2.2) * [Release 1.2.1](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.2.1) * [Release 1.2.0](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.2.0) * [Release 1.1.8](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.1.8) * [Release 1.1.7](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.1.7) * [Release 1.1.6](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.1.6) * [Release 1.1.5](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.1.5) * [Release 1.1.3](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.1.3) * [Release 1.1.2](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.1.2) * [Release 1.1.0](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.1.0) * [Release 1.0.26](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.26) * [Release 1.0.25](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.25) * [Release 1.0.24](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.24) * [Release 1.0.23](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.23) * [Release 1.0.22](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.22) * [Release 1.0.21](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.21) * [Release 1.0.20](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.20) * [Release 1.0.19](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.19) * [Release 1.0.18](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.18) * [Release 1.0.17](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.17) * [Release 1.0.16](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.16) * [Release 1.0.15](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.15) * [Release 1.0.14](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.14) * [Release 1.0.13](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.13) * [Release 1.0.12](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.12) * [Release 1.0.11](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.11) * [Release 1.0.10](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.10) * [Release 1.0.9](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.9) * [Release 1.0.8](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.8) * [Release 1.0.7](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.7) * [Release 1.0.6](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.6) * [Release 1.0.5](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.5) * [Release 1.0.4](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.4) * [Release 1.0.3](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.3) * [Release 1.0.2](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.2) * [Release 1.0.1](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.1) * [Release 1.0.0](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-1.0.0) * [Release 0.3.14](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.14) * [Release 0.3.13](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.13) * [Release 0.3.12](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.12) * [Release 0.3.11](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.11) * [Release 0.3.10](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.10) * [Release 0.3.9](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.9) * [Release 0.3.8](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.8) * [Release 0.3.7](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.7) * [Release 0.3.6](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.6) * [Release 0.3.5](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.5) * [Release 0.3.4](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.4) * [Release 0.3.3](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.3) * [Release 0.3.2](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.2) * [Release 0.3.1](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.1) * [Release 0.3.0](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.3.0) * [Release 0.2.22](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.22) * [Release 0.2.21](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.21) * [Release 0.2.20](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.20) * [Release 0.2.19](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.19) * [Release 0.2.18](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.18) * [Release 0.2.17](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.17) * [Release 0.2.16](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.16) * [Release 0.2.15](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.15) * [Release 0.2.14](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.14) * [Release 0.2.13](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.13) * [Release 0.2.12](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.12) * [Release 0.2.11](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.11) * [Release 0.2.10](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.10) * [Release 0.2.9](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.9) * [Release 0.2.8](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.8) * [Release 0.2.7(Rolled back)](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.7-rolled-back) * [Release 0.2.6](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.6) * [Release 0.2.5](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.5) * [Release 0.2.4](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.4) * [Release 0.2.3](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.3) * [Release 0.2.2](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.2) * [Release 0.2.1](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.1) * [Release 0.2.0](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.2.0) * [Release 0.1.8](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.1.8) * [Release 0.1.7](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.1.7) * [Release 0.1.6](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.1.6) * [Release 0.1.5](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.1.5) * [Release 0.1.4](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.1.4) * [Release 0.1.3](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.1.3) * [Release 0.1.2](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.1.2) * [Release 0.1.1](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.1.1) * [Release 0.1.0](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.1.0) * [Release 0.0.27](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.0.27) * [Release 0.0.26](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.0.26) * [Release 0.0.25](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.0.25) * [Release 0.0.24](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.0.24) * [Release 0.0.23](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.0.23) * [Release 0.0.22](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.0.22) * [Release 0.0.21](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/releases#release-0.0.21) Copy TRADE_CONFIGS: - FIXED_SIZE: 1_000_000_000 - FIXED_SIZE: 10_000_000_000 Copy INTERMEDIUM_MINT_FROM_ADDRESSES: MAX_MINT_COUNT: 0 # 0 is no maximum, ADDRESSES: - ADDRESS: 'benRLpbWCL8P8t51ufYt522419hGF5zif3CqgWGbEUm' TX_COUNT_PER_ADDRESS: 100 # Number of latest transactions to check on start SUCCESSFUL_ONLY: false # Only consider successful transactions MAX_MINT_COUNT: 0 # 0 is no maximum - ADDRESS: 'bobCPc5nqVoX7r8gKzCMPLrKjFidjnSCrAdcYGCH2Ye' TX_COUNT_PER_ADDRESS: 100 SUCCESSFUL_ONLY: false MAX_MINT_COUNT: 0 # 0 is no maximum Copy BASE_MINTS: - MINT: So11111111111111111111111111111111111111112 # Wrapped SOL TRADE_RANGE: FROM: 1_000_000_000 TO: 2_000_000_000 TRADE_RANGE_COUNT: 5 # Number of trade sizes within the range TRADE_RANGE_STRATEGY: 'linear' # Strategy for distributing trade sizes JITO: JITO_TIP_BP: 9000 Copy "min": 0, "low": 10000, "medium": 60082, "high": 1230000, "veryHigh": 5000000 Copy [\ { "mint": "So11111111111111111111111111111111111111112",\ "tradeSize": [1210000000, 2410000000],\ "minProfit": 2000000,\ "priorityFeePercentile": 50,\ "maxPriorityFee": 100000\ }\ ] --- # Bot configurations | SolanaMevBot The bot uses `config.yaml` file to load all the configurations. Different configuration can greatly impact your profitability using the bot. Tweak it based on your own setup. Join our discord to learn more. You can also refer the config examples as a starting point to tweak for your own config. [📚Config examples](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations/config-examples) If a config does not exist in your config.yaml file, just refer to config.yaml.example and add the ones you are missing. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#example-config.yaml) Example config.yaml ----------------------------------------------------------------------------------------------------------------------------- Copy # !!!!!!!!!!!!!!IMPORTANT!!!!!!!!!!!!! # If you just get started use the demo configs on the solanamevbot.com website, # DO NOT USE THIS FILE as your starting point. This file is for reference when adding new configs ONLY. # SolanaMevBot Configuration. For detailed explanation of each configuration option, # see https://docs.solanamevbot.com/home/fundamentals/bot-configurations # (warning: sensitive information). Make sure you don't share it with anyone. KEYS: PRIVATE_KEY: '' # You can use a JSON file or just a private key string HELIUS_API_KEY: '' # API key for Helius. Only needed if you use priorityFeePercentile CIRCULAR_API_KEY: '' # API key for Circular. Only needed if you use Circular API # Yellowstone Configuration. This is optional. Yellowstone will be used for Jupiter if set. YELLOWSTONE: YELLOWSTONE_URL: '' # Yellowstone API URL YELLOWSTONE_XTOKEN: '' # Yellowstone authentication token # Jupiter Configuration JUPITER: DISABLE_LOCAL_JUPITER: false # Disable local Jupiter instance JUPITER_RPC_URL: '' # Jupiter RPC URL. If not set the bot will use the RPC_URL JUPITER_URL: 'http://127.0.0.1:18080' # URL for Jupiter API JUP_MAX_ACCOUNTS: 24 # Maximum number of accounts in a single swap LOCAL_JUPITER_PORT: 18080 # Port for local Jupiter instance MARKET_MODE: 'remote' # 'remote' or 'europa' or 'file'. 'europa' is very RPC heavy and can cause issues with RPC nodes. USE_DIRECT_ROUTE_ONLY: true # Use only direct swap routes USE_LOCAL_MARKET_CACHE: false # Use local cache for market data WEBSERVER_THREAD_COUNT: 2 UPDATE_THREAD_COUNT: 4 ENABLE_CIRCULAR_MARKET_CACHE: false # Use Circular API to get market data, only supports up to 50 mints including base mints INCLUDED_DEXES: - '6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P' - 'MoonCVVNZFSYkqNXP6bxHLPL6QQJiMagDL3qcqUQTrG' EXCLUDED_DEXES: # List of DEX program IDs to exclude - '6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P' - 'MoonCVVNZFSYkqNXP6bxHLPL6QQJiMagDL3qcqUQTrG' JUPITER_API_KEY: '' # Jupiter API key, only needed if you use a 3rd party Jupiter instance like shyft SKIP_JUPITER_TOKEN_LIST_CHECK: false # Skip Jupiter token list check ADDITIONAL_JUPITER_URL_PARAMS: '' # Additional URL params to append to the Jupiter API URL # Intermedium Mints Configuration INTERMEDIUM_MINTS: INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE: 0 # Number of top 24h volume tokens from Birdeye to use as intermediaries INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE_TRENDING: 0 # Number of trending tokens from Birdeye to use as intermediaries INTERMEDIUM_MINT_COUNT_FROM_GECKO: 0 # Number of new tokens from Gecko to use as intermediaries INTERMEDIUM_MINT_COUNT_FROM_JUPITER: 0 # You should only use this when you use a remote Jupiter instance. Number of new tokens from the Jupiter instance you connect to as intermediaries. INTERMEDIUM_MINT_FROM_FILE: '' # Json file containing a list of mints to use as intermediaries INTERMEDIUM_MINT_FROM_FILES: [] # List of json files containing a list of mints to use as intermediaries INTERMEDIUM_MINT_LIST: # List of mints to use as intermediaries - 'mint1' - 'mint2' - 'mint3' INTERMEDIUM_MINT_EXCLUDE_FROM_FILE: '' # Json file containing a list of mints to exclude as intermediaries INTERMEDIUM_MINT_FROM_ADDRESSES: MAX_MINT_COUNT: 10 # Maximum number of mints to extract from addresses ADDRESSES: - ADDRESS: 'address1' TX_COUNT_PER_ADDRESS: 100 # Number of latest transactions to check on start SUCCESSFUL_ONLY: true # Only consider successful transactions MAX_MINT_COUNT: 10 # Maximum number of mints to extract from addresses - ADDRESS: 'address2' TX_COUNT_PER_ADDRESS: 50 MAX_MINT_COUNT: 10 # Maximum number of mints to extract from addresses INTERMEDIUM_MINT_FROM_CIRCULAR: MAX_TOKENS_LIST: 5 # Maximum number of tokens to fetch from Circular API MAX_TIME_RANGE: 900 # Maximum time range in seconds for the data to be fetched from Circular API TOKEN: 'So11111111111111111111111111111111111111112' # Base Token to fetch from Circular API EXCLUDE_TOKENS: # List of tokens to exclude from the fetched data, can be empty - 'So11111111111111111111111111111111111111112' PROVIDER: '' # Optional, Filter by provider list ("JITO", "FAST", "TEMPORAL", "BLOX", "NEXTBLOCK", "NO_PROVIDER") INTERMEDIUM_MINT_FILTER: MAX_MINT_COUNT: 10 # Maximum number of mints to keep FILTER_METHOD: 'random' # Filter method, only 'random' is supported for now # Bot Configuration BOT: RPC_URL: 'https://api.mainnet-beta.solana.com' # Primary RPC endpoint. You should use your own private RPC endpoint. AUTO_RESTART: 0 # Automatically restart the bot after specified minutes (0 to disable) MAX_COMPUTE_TIME: 5000 # Maximum for total compute times in milliseconds MEMO: '' # Memo to include in transactions MIN_SOL_BALANCE: 0 # Minimum SOL balance to maintain in lamports ENABLE_SIMULATION: false # Simulate transactions before sending PULL_BLOCKHASH_WITH_YELLOWSTONE: false # Use Yellowstone for blockhash FIXED_COMPUTE_UNIT_LIMIT: 0 # Fixed compute unit limit (0 to use dynamic limit) COMPUTE_UNIT_LIMIT_MULTIPLIER: 1 # Compute unit limit multiplier, 1 is usually enough to cover 95% of the cases. ENABLE_JITO_RPC: false # Use Jito RPC endpoint. Only enable this if you know what you are doing. PAY_FEE_WITH_PROFIT: false # Pay fee with profit. Only works for SOL. JUPITER_WORKER_COUNT: 1 # Number of Jupiter worker threads MAX_WRAP_SOL_COMPUTE_UNIT_PRICE: 20_000_000 # Maximum compute unit price in micro lamports when wrapping/unwrapping SOL ENABLE_FIXED_SIZE_OPTIMIZATION: false # Enable fixed size optimization # Download Configuration DOWNLOAD_RPC_URL: '' # RPC URL used for downloading, when not set the bot will use RPC_URL DOWNLOAD_RPC_RATE_LIMIT_PER_SECOND: 0 # Rate limit for RPC in requests per second, 0 is no limit # Spam Configuration SPAM: ENABLE_SPAM: false # Using RPCs to send arbitrage transactions SPAM_RESTRICT_LEVEL: 0 # Spam restriction level (0-5). 0 is no restriction. SKIP_PREFLIGHT: true # Skip preflight transaction checks USE_DIFFERENT_TX_FOR_SENDERS: false # Use different transactions for each RPC sender MAX_RETRIES: 0 # Maximum number of retries for failed operations PRIORITY_FEE_STRATEGY: 'fixed' # Supported strategies: profit-based, fixed, helius. You can only use one of them. SEND_RPC_URLS: [] # RPC endpoints for transaction submission. You can use multiple RPC endpoints to increase the chance of success. # Only matter if you set PRIORITY_FEE_STRATEGY to helius PRIORITY_FEE_PERCENTILE: 50 # Priority fee percentile for priority fee transactions. Need Helius API key. PRIORITY_FEE_UPDATE_INTERVAL: 60 # Interval for updating priority fees in seconds # Only matter if you set PRIORITY_FEE_STRATEGY to profit-based SPAM_FEE_BPS: 500 # This allows you to set your gas fee to be a fixed percentage of the projected gain. # Only matter if you set PRIORITY_FEE_STRATEGY to fixed COMPUTE_UNIT_PRICE: 0 # Price per compute unit in micro-lamports MAX_COMPUTE_UNIT_PRICE: 100_000 # Maximum compute unit price in micro lamports MIN_COMPUTE_UNIT_PRICE: 0 # Minimum compute unit price in micro lamports # Bloxroute Configuration, Rate limit is 10/s if you use the default key. No limit for your own key. BLOXROUTE: ENABLE_BLOXROUTE: false # Enable Bloxroute as a sending RPC. Note you need to also ENABLE_SPAM for this to work. BLOXROUTE_REGION: 'ny' # Bloxroute region. ny/uk/la/tokyo/germany/amsterdam BLOXROUTE_REGION_LIST: # If you want to send to multiple region for the same tx, you can use this. - ny - uk BLOXROUTE_FEE: 500_000 # Bloxroute fee in lamports, minimum is 500_000 BLOXROUTE_KEY: '' # Bloxroute API key, when not set the bot will use the default key with a 10/s rate limit BLOXROUTE_DYNAMIC_FEE: false # Use dynamic fee for Bloxroute, will calculate the fee based on the projected profit similar to STATIC_TIP_BP in Jito. BLOXROUTE_DYNAMIC_FEE_BP: 0 # Dynamic fee in basis points, only works when BLOXROUTE_DYNAMIC_FEE is true. BP of the projected profit, similar to STATIC_TIP_BP in Jito. BLOXROUTE_MAX_DYNAMIC_FEE: 0 # Maximum dynamic fee in lamports, 0 to disable BLOXROUTE_JITO_ONLY: false # Use Jito only for Bloxroute # Temporal Configuration TEMPORAL: ENABLE_TEMPORAL: false # Enable Temporal as a sending RPC. Note you need to also ENABLE_SPAM for this to work. TEMPORAL_REGION: ams1 # Temporal region. ams1/ewr1/pit1/fra2 TEMPORAL_REGION_LIST: # If you want to send to multiple region for the same tx, you can use this. - ams1 - ewr1 TEMPORAL_FEE: 1_000_000 # Temporal fee in lamports, minimum is 1_000_000 TEMPORAL_KEY: '' # Temporal API key, required to use Temporal TEMPORAL_DYNAMIC_FEE: false # Use dynamic fee for Temporal, will calculate the fee based on the projected profit similar to STATIC_TIP_BP in Jito. TEMPORAL_DYNAMIC_FEE_BP: 0 # Dynamic fee in basis points, only works when TEMPORAL_DYNAMIC_FEE is true. BP of the projected profit, similar to STATIC_TIP_BP in Jito. TEMPORAL_SHOW_SENDING_ERROR: true # Show error messages in logs TEMPORAL_MAX_DYNAMIC_FEE: 0 # Maximum dynamic fee in lamports, 0 to disable # Nextblock Configuration NEXTBLOCK: ENABLE_NEXTBLOCK: false # Enable Nextblock as a sending RPC. Note you need to also ENABLE_SPAM for this to work. NEXTBLOCK_REGION: ny # Nextblock region. ny/fra NEXTBLOCK_REGION_LIST: # If you want to send to multiple region for the same tx, you can use this. - ny - fra NEXTBLOCK_FEE: 1_000_000 # Nextblock fee in lamports, minimum is 1_000_000 NEXTBLOCK_KEY: '' # Nextblock API key, required to use Nextblock NEXTBLOCK_DYNAMIC_FEE: false # Use dynamic fee for Nextblock, will calculate the fee based on the projected profit similar to STATIC_TIP_BP in Jito. NEXTBLOCK_DYNAMIC_FEE_BP: 0 # Dynamic fee in basis points, only works when NEXTBLOCK_DYNAMIC_FEE is true. BP of the projected profit, similar to STATIC_TIP_BP in Jito. NEXTBLOCK_SHOW_SENDING_ERROR: true # Show error messages in logs NEXTBLOCK_MAX_DYNAMIC_FEE: 0 # Maximum dynamic fee in lamports, 0 to disable NEXTBLOCK_JITO_ONLY: false # Use Jito only for Nextblock # Fast Configuration FAST: ENABLE_FAST: false # Enable Fast as a sending RPC. Note you need to also ENABLE_SPAM for this to work. FAST_FEE: 1_000_000 # Fast fee in lamports, minimum is 1_000_000 FAST_DYNAMIC_FEE: false # Use dynamic fee for Fast, will calculate the fee based on the projected profit similar to STATIC_TIP_BP in Jito. FAST_DYNAMIC_FEE_BP: 0 # Dynamic fee in basis points, only works when FAST_DYNAMIC_FEE is true. BP of the projected profit, similar to STATIC_TIP_BP in Jito. FAST_SHOW_SENDING_ERROR: true # Show error messages in logs FAST_MAX_DYNAMIC_FEE: 0 # Maximum dynamic fee in lamports, 0 to disable FAST_JITO_ONLY: false # Use Jito only for Fast # Jito Configuration JITO: ENABLE_JITO: false # Use jito to send arbitrage transactions SHOW_JITO_LOGS: false # Show Jito landing logs JITO_UUID: '' # Jito user identifier. TIP_STRATEGIES: # Supported strategies: dynamic, static, fixed, fixed-list, static-list, fixed-range. You can use a combination of them. - dynamic - static - fixed - 'static-list' - 'fixed-list' - 'fixed-range' DYNAMIC_TIP_BP: 5000 # Jito tip in basis points. The value is dynamically calculated onchain. STATIC_TIP_BP: 0 # Jito tip in basis points. The value is calculated based on the projected profit. FIXED_TIP: 0 # Fixed tip in lamports. FIXED_TIP_LIST: - 10_000_000 - 100_000_000 - 1_000_000_000 STATIC_TIP_BP_LIST: - 5000 - 7000 - 9000 FIXED_TIP_RANGE: FROM: 100_000 TO: 10_000_000_000 FIXED_TIP_RANGE_COUNT: 5 FIXED_TIP_RANGE_STRATEGY: 'random' # Strategy for distributing tip sizes. Valid values: random, exponential, linear MAX_TIP: 1_000_000_000 # Maximum tip in lamports. If 0 the bot will use 80% of the wallet balance as the max tip. USE_SEPARATE_TIP_ACCOUNT: false # Use a separate account for tips USE_DIFFERENT_TX_FOR_BLOCK_ENGINES: true # Use different transactions for each block engine USE_DIFFERENT_TIP_ACCOUNT_FOR_BLOCK_ENGINES: false # Use different tip accounts for each block engine BLOCK_ENGINES: # List of block engines to use - 'ny' - 'amsterdam' - 'frankfurt' - 'tokyo' - 'slc' ENABLE_MULTIPLE_IP_ADDRESSES_FOR_JITO: false # Use multiple addresses to send jito transactions. You need to have your ip setup correctly on your machine first to utilize this. START_IP: '1.1.1.1' # Optional. When set bot will use the IPV4 ip start from this ip END_IP: '1.1.1.6' # Optional. When set bot will use the IPV4 ip end with this ip IP_LIST: # Optional. If you want to set multiple ips manually, you can use this. - 1.1.1.1 - 2.2.2.2 # Flashloan Configuration FLASHLOAN: ENABLE_FLASHLOAN: false # Enable flashloan functionality FLASHLOAN_PROVIDER: 'kamino' # Flashloan provider. Currently supported: solend, kamino WRAP_SOL_AMOUNT: 0 # Amount of SOL to wrap in lamports # Logging Configuration LOGGING: DEBUG: false # Enable debug mode for additional logging HIDE_ERROR: false # Hide error messages in logs ENABLE_LANDING_LOG: false # Enable logging of landing transactions ENABLE_SENDING_LOG: true # Enable logging of sending transactions # Blind Quote Strategy Configuration # How blind quote strategy works: # 1. Bot will use the trade size you defined in this config to quote for all the intermedium mints you defined, both to buy and sell. # 2. If a buy and sell quote has profit and it's higher than the MIN_QUOTE_PROFIT you defined here, it will send out tx try to catch it BLIND_QUOTE_STRATEGY: ENABLE_BLIND_QUOTE_STRATEGY: true # Enable blind quote strategy MEMO: '' # Memo override for the blind quote strategy SKIP_SAME_OPPORTUNITY: false # Skip duplicate arbitrage opportunities BASE_MINTS: - MINT: So11111111111111111111111111111111111111112 # Wrapped SOL TRADE_RANGE: FROM: 1_000_000_000 # 1 SOL TO: 10_000_000_000 # 10 SOL PROCESS_DELAY: 1000 # Delay between processing a new round of routes and checking for new opportunities in milliseconds TRADE_RANGE_COUNT: 5 # Number of trade sizes within the range TRADE_RANGE_STRATEGY: 'random' # Strategy for distributing trade sizes. Valid values: random, exponential, linear MIN_QUOTE_PROFIT: 1_000_000 # Minimum profit in lamports MIN_SIMULATED_PROFIT: 100_000 # Minimum profit in lamports for the simulated profit SKIP_PROFIT_CHECK_FOR_QUOTE: false # Skip profit check for the quote, jup quote can be very inaccurate sometimes, you can use this together with simulation to get the actual profit ROUTE_TYPES: # List of route types to use - 2hop - 3hop THREE_HOP_MINTS: # List of mints to use for 3hop route - EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v # You can also use USDC/USDT as base mints, or config a different strategy for the same mint multiple times. - MINT: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v # USDC TRADE_SIZES: - 50_000_000 - 500_000_000 # Trade size in USDC (6 decimals) MIN_QUOTE_PROFIT: 5000 # Minimum profit in USDC (6 decimals) PROCESS_DELAY: 1000 # Delay between processing a new round of routes and checking for new opportunities in milliseconds MIN_SIMULATED_PROFIT: 5000 # Minimum profit in lamports for the simulated profit SKIP_PROFIT_CHECK_FOR_QUOTE: false # Skip profit check for the quote, jup quote can be very inaccurate sometimes, you can use this together with simulation to get the actual profit - MINT: Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB # USDT TRADE_SIZES: - 50_000_000 - 500_000_000 # Trade size in USDT (6 decimals) MIN_QUOTE_PROFIT: 5000 # Minimum profit in USDT (6 decimals) PROCESS_DELAY: 1000 # Delay between processing a new round of routes and checking for new opportunities in milliseconds MIN_SIMULATED_PROFIT: 5000 # Minimum profit in lamports for the simulated profit SKIP_PROFIT_CHECK_FOR_QUOTE: false # Skip profit check for the quote, jup quote can be very inaccurate sometimes, you can use this together with simulation to get the actual profit # Backrun Strategy Configuration # How backrun strategy works: # 1. Bot will monitor the markets you defined in DEXES_TO_MONITOR, with all the intermedium mints you defined above # 2. If the pool's price moved more than MIN_PRICE_IMPACT_PCT, bot will try to create a trade to backrun it # 3. Bot will use the trade size you defined in TRADE_CONFIGS, to randomly generate a size between MIN_TRADE_BP # and MAX_TRADE_BP, based on the trade you are back running # 4. Bot will quote the other size of the trade with jupiter, create a full arb trade tx # 5. If the tx has profit and it's higher than MIN_QUOTE_PROFIT, bot will send it out BACKRUN_STRATEGY: ENABLE_BACKRUN_STRATEGY: false # Enable backrun strategy MEMO: '' # Memo override for the backrun strategy SLOT_MEMO: true # Add the backrun tx's slot to the memo, useful to see how far you landed your backrun tx. DEXES_TO_MONITOR: # List of DEXes to monitor. Valid values: Raydium, Whirlpool, RaydiumCLMM, Meteora, MeteoraDLMM - Raydium - Whirlpool - RaydiumCLMM - Meteora - MeteoraDLMM - SolFi - LifinityV2 MIN_PRICE_IMPACT_PCT: 0.1 # Minimum price impact in percentage, for the pool you are monitoring. Bot will only backrun trades that caused the price to move more than this percentage. BASE_MINTS: # List of base mints to use for the backrun. Currently only SOL and USDC are supported. - MINT: So11111111111111111111111111111111111111112 MIN_QUOTE_PROFIT: 100_000 # Minimum profit in lamports for the quote MIN_SIMULATED_PROFIT: 100_000 # Minimum profit in lamports for the simulated profit SKIP_PROFIT_CHECK_FOR_QUOTE: false # Skip profit check for the quote, jup quote can be very inaccurate sometimes, you can use this together with simulation to get the actual profit MIN_TRADE_SIZE: 500_000_000 # Minimum trade size in lamports, if the generated trade size is less than this bot will skip the trade MAX_TRADE_SIZE: 150_000_000_000 # Maximum trade size in lamports, if the generated trade size is more than this bot will cap it at this size SENDING_COOLDOWN: 0 # If one opportunity is found and tx is sent out, wait at least this time(ms) before sending another one. TRADE_CONFIGS: # List of trade configs to use for the backrun. You can define multiple configs to backrun the same tx # Bot will randomly pick a trade size between MIN_TRADE_BP and MAX_TRADE_BP, based on the trade you are backrunning # Or you can define a FIXED_SIZE, bot will use this size for the backrun # You can define multiple configs, and bot will create different txs to backrun the same trade - MIN_TRADE_BP: 2000 # Min trade size in basis points MAX_TRADE_BP: 2000 # Max trade size in basis points - FIXED_SIZE: 100_000_000 # Fixed trade size in lamports. You should only define MIN/MAX or FIXED_SIZE, not both in the same config item. ROUTE_TYPES: # Currently only 2hop is supported - 2hop - MINT: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v # USDC MIN_QUOTE_PROFIT: 100_000 # Minimum profit in lamports for the quote MIN_SIMULATED_PROFIT: 100_000 # Minimum profit in lamports for the simulated profit SKIP_PROFIT_CHECK_FOR_QUOTE: false # Skip profit check for the quote, jup quote can be very inaccurate sometimes, you can use this together with simulation to get the actual profit MIN_TRADE_SIZE: 500_000_000 # Minimum trade size in lamports, if the generated trade size is less than this bot will skip the trade MAX_TRADE_SIZE: 150_000_000_000 # Maximum trade size in lamports, if the generated trade size is more than this bot will cap it at this size TRADE_CONFIGS: # List of trade configs to use for the backrun. You can define multiple configs to backrun the same tx # Bot will randomly pick a trade size between MIN_TRADE_BP and MAX_TRADE_BP, based on the trade you are backrunning # You can define multiple configs, and bot will create different txs to backrun the same trade - MIN_TRADE_BP: 2000 # Min trade size in basis points MAX_TRADE_BP: 2000 # Max trade size in basis points ROUTE_TYPES: # Currently only 2hop is supported - 2hop [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#keys) KEYS ----------------------------------------------------------------------------------------------- This section contains configurations like private keys, api keys. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#private_key) PRIVATE\_KEY Private key for your wallet. All formats are supported, you can export from Phantom/Solflare or just use a json file path. The wallet needs to hold enough SOL/WSOL/USDC for your configuration. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#helius_api_key) HELIUS\_API\_KEY This is used for fetching lated priority fee. You can get one for free by register an account on [https://www.helius.dev/](https://www.helius.dev/) . ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#circular_api_key) CIRCULAR\_API\_KEY This can be used to fetch tokens, fetch custom market cache etc. [https://www.circular.bot/ref/SMB](https://www.circular.bot/ref/SMB) [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#yellowstone) YELLOWSTONE ------------------------------------------------------------------------------------------------------------- [Yellowstone](https://github.com/rpcpool/yellowstone-grpc) is optional, but having it can greatly reduce your RPC calls and increase the number of mints you can have with Jupiter. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#yellowstone_url) YELLOWSTONE\_URL If present, JupV6 API will use it, otherwise JupV6 will be running in pull mode, which is very heavy on the read RPC. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#yellowstone_xtoken) YELLOWSTONE\_XTOKEN If your yellowstone provider also provides you an x token set it here. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jupiter) JUPITER ----------------------------------------------------------------------------------------------------- When running the bot with `JUPITER_URL=http://0.0.0.0:18080`, or `JUPITER_URL=http://127.0.0.1:18080` the bot will first pull the latest popular token mints from Birdeye, based on last 24h volume. Then spin up a JupV6 API with `FILTER_MARKETS_WITH_MINTS` set to the token mints pulled from Birdeye. `INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE` configures how many tokens to use from Birdeye. The higher you set for `INTERMEDIUM_MINT_COUNT_FROM_BIRDEYE`, the more oppotunity you may see as there are more potential routes from different token pairs. Though higher number also means longer time to get a quote from JupV6 API, and it will also uses more resources from your machine. If `YELLOWSTONE_URL` is not set, it is not recommended to set If `YELLOWSTONE_URL` is set, it will be used to start JupV6 API with it, otherwise the JupV6 API will run in pull mode, which is heavy for your read RPC and it is not recommended when you have too many intermedium mints(>100). If `JUPITER_URL`is set to a different value, none of the params in the following form will apply. This can be used when you have a JupV6 API provider, or running it yourself separately. More info about self-hosted JupV6 can be found here: [https://station.jup.ag/docs/apis/self-hosted](https://station.jup.ag/docs/apis/self-hosted) ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#disable_local_jupiter) DISABLE\_LOCAL\_JUPITER Default: false When set to true, it will not start the Jupiter API locally. This is useful when you want to run multiple bots on the same machine ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#included_dexes) INCLUDED\_DEXES default: \[\] The full list is [here](https://quote-api.jup.ag/v6/program-id-to-label) . You can choose which Dex to include from your jup api when starting it. Using the address of the Dex not the name, separate by comma. You can only set one of `INCLUDED_DEXES` and `EXCLUDED_DEXES` not both. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#excluded_dexes) EXCLUDED\_DEXES default: \[\] The full list is [here](https://quote-api.jup.ag/v6/program-id-to-label) . You can choose which Dex to exclude from your jup api when starting it. Using the address of the Dex not the name, separate by comma. You should always exclude Moonshot and Pump.fun unless you know what you are doing. You can only set one of `INCLUDED_DEXES` and `EXCLUDED_DEXES` not both. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jupiter_rpc_url) JUPITER\_RPC\_URL The RPC that is used to read data. When using default JUPITER\_URL value, this RPC will also be used to spin up JupV6 API. If this is not set, the value of RPC\_URL will be used. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jupiter_url) JUPITER\_URL Default: http://0.0.0.0:18080 Endpoint for JupV6 API. When using default value, it will spin up a JupV6 using top popular mints from Birdeye. When set a value other than default, the rest of the parameters in this form will not be applied. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jup_max_accounts) JUP\_MAX\_ACCOUNTS Default: 24 the maxAccounts param that is used to call quote from JupV6. Recommended not setting this higher than 32. The higher this number is, the more routes you can find, though as there's a limit on the total accounts, a higher number here will also cause a higher chance to find an invalid route with too many accounts, and it also takes longer to search. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_local_market_cache) USE\_LOCAL\_MARKET\_CACHE Default: false 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` ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_circular_market_cache) ENABLE\_CIRCULAR\_MARKET\_CACHE Default: false You need to set [`CIRCULAR_API_KEY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#circular_api_key) to use this. [https://www.circular.bot/ref/SMB](https://www.circular.bot/ref/SMB) You also need to set [`MARKET_MODE`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#market_mode) to `file` and [`USE_LOCAL_MARKET_CACHE`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_local_market_cache) to `true` when using circular market cache ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#local_jupiter_port) LOCAL\_JUPITER\_PORT Default: 18080 The port jupiter api uses. Note if you change this, you should also change your [JUPITER\_URL](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jupiter_url) with the same port. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#market_mode) MARKET\_MODE Default: remote Supported value: `europa`,`file`, `remote` The default behavior(remote) here will fetch a snapshot of all the markets given your intermedium mints, and will only update them on a restart. Europa mode will stream new markets for your mint list to Jupiter, but it can be very heavy for some RPC to handle. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#total_thread_count) TOTAL\_THREAD\_COUNT Jup uses thread for 3 things: webserver, update, router. You can config thread count for webserver and update, the rest of the cores will be used for router. Router thread is handling the workload to find the best route for each quote request. This can be heavy especially when you have `USE_DIRECT_ROUTE_ONLY` false. Make sure you leave some cores beside WEBSERVER\_THREAD\_COUNT and UPDATE\_THREAD\_COUNT for routing calculation. Default: the number of CPU cores on your machine Routing engine thread = `TOTAL_THREAD_COUNT` - `WEBSERVER_THREAD_COUNT` - `UPDATE_THREAD_COUNT`. Most of the time you shouldn't need to set this and can just let jupiter use all your cores to enhance performance. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#webserver_thread_count) WEBSERVER\_THREAD\_COUNT Jup uses thread for 3 things: webserver, update, router. You can config thread count for webserver and update, the rest of the cores will be used for router. Router thread is handling the workload to find the best route for each quote request. This can be heavy especially when you have `USE_DIRECT_ROUTE_ONLY` false. Make sure you leave some cores beside WEBSERVER\_THREAD\_COUNT and UPDATE\_THREAD\_COUNT for routing calculation. Default: 2 This is how many thread to handle the http requests. The bot is heavily using this so you should consider setting this to a high number if your jupiter quote per second is high. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#update_thread_count) UPDATE\_THREAD\_COUNT Jup uses thread for 3 things: webserver, update, router. You can config thread count for webserver and update, the rest of the cores will be used for router. Router thread is handling the workload to find the best route for each quote request. This can be heavy especially when you have `USE_DIRECT_ROUTE_ONLY` false. Make sure you leave some cores beside WEBSERVER\_THREAD\_COUNT and UPDATE\_THREAD\_COUNT for routing calculation. Default: 4 This is the number of threads used to handle markets update using the data pulled from yellowstone/rpc. If you are using a lot of mints you should consider setting a higher number for this to speed up your price update. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_direct_route_only) USE\_DIRECT\_ROUTE\_ONLY Default: true When set to true, the bot will only look for 2hop(A -> B -> A) trade. Setting to true will lead to shorter quote time to Jup, with faster landing. Setting to false will lead to more opportunity, but taking more time to quote. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jupiter_api_key) JUPITER\_API\_KEY You should only set this when using jupiter from a third party provider, and are using `x-api-key` in the header(like shyft), you can set it here. If your provider uses a url params, like api-key=xxxx in the url, please use `ADDITIONAL_JUPITER_URL_PARAMS` ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#additional_jupiter_url_params) ADDITIONAL\_JUPITER\_URL\_PARAMS If your provider uses a url params, like api-key=xxxx in the url, you can set this config to include that in all the jupiter requests. example: ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#skip_jupiter_token_list_check) SKIP\_JUPITER\_TOKEN\_LIST\_CHECK Some providers does not expose the /tokens api endpoint for their jupiter service. In such case you can set this config to true to avoid the call. Otherwise the bot will stuck at `Fetching Jupiter tokens from` ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#restrict_intermediate_tokens) RESTRICT\_INTERMEDIATE\_TOKENS Default: false This only takes effect when you have [`USE_DIRECT_ROUTE_ONLY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_direct_route_only) to false. From Jupiter: Restrict intermediate tokens to a top token set that has stable liquidity. This will help to ease potential high slippage error rate when swapping with minimal impact on pricing. This can help to speed up the jupiter quote time when you has [`USE_DIRECT_ROUTE_ONLY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_direct_route_only) set to false. Though as it says it will also restrict what additional mints it uses in your route. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mints) INTERMEDIUM\_MINTS -------------------------------------------------------------------------------------------------------------------------- The Bot tries to find profitable route by getting a quote from BASE\_MINT to an INTERMEDIUM\_MINT for a given trade size, then get another quote from INTERMEDIUM\_MINT to BASE\_MINT, and combine them together for a potential profitable route. Basically a route from A -> B -> A. ![](https://docs.solanamevbot.com/home/~gitbook/image?url=https%3A%2F%2F3811539071-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fx2rxpD03KDvMgJqIkdla%252Fuploads%252F4sRcVgpFmtDX5Rg3tNVb%252FScreen%2520Shot%25202024-05-09%2520at%252011.41.04%2520AM.png%3Falt%3Dmedia%26token%3Dbfcc2ec5-97f4-4b7c-92b3-8544d5162988&width=768&dpr=4&quality=100&sign=d2a9aa37&sv=2) Base mint SOL When `USE_DIRECT_ROUTE_ONLY` is set to true, the bot will only return route in the form of A -> B -> A like above. For potentially more opportunity, you can set it to false, which can lead to routes like A -> B -> C -> A. The downside of setting this to false is it will slow down the time to get a quote, end up sending out the transaction a bit slower. ![](https://docs.solanamevbot.com/home/~gitbook/image?url=https%3A%2F%2F3811539071-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fx2rxpD03KDvMgJqIkdla%252Fuploads%252Fi9UQHnjvUTWSjYGPIs0G%252FScreen%2520Shot%25202024-05-09%2520at%252011.28.57%2520AM.png%3Falt%3Dmedia%26token%3Dd9cd9bfe-5e35-469c-928d-1d853183b492&width=768&dpr=4&quality=100&sign=6e755353&sv=2) You can set as many tokens as possible as the INTERMEDIUM\_MINT, though the more you have, the heavier your RPC load is, so you may want to adjust this accordingly. There are multiple ways for you to define which mints you use as intermedium. The bot will merge all the mints fetched through different ways into one list and use it as intermedium mints. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_count_from_birdeye) INTERMEDIUM\_MINT\_COUNT\_FROM\_BIRDEYE Default: 0 This param configs how many top tokens to use as intermedium mint that pulled from Birdeye's 24h volume list. This list has high volume but usually low velocity. [https://docs.birdeye.so/reference/get\_defi-tokenlist](https://docs.birdeye.so/reference/get_defi-tokenlist) ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_count_from_birdeye_trending) INTERMEDIUM\_MINT\_COUNT\_FROM\_BIRDEYE\_TRENDING Default: 0 This param configs how many top tokens to use as intermedium mint that pulled from Birdeye's trending list. Maximum 200. Update every 20min. This list has high velocity new mints, and usually works better with SOL as base mint. You do not need birdeye api for this. [https://docs.birdeye.so/reference/get\_defi-token-trending](https://docs.birdeye.so/reference/get_defi-token-trending) ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_count_from_jupiter_trending) INTERMEDIUM\_MINT\_COUNT\_FROM\_JUPITER\_TRENDING Default: 0 This param configs how many top tokens to use as intermedium mint that pulled from Jupiter's trending list. [https://fe-api.jup.ag/api/v1/tokens/trending](https://fe-api.jup.ag/api/v1/tokens/trending) ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_count_from_gecko) INTERMEDIUM\_MINT\_COUNT\_FROM\_GECKO Default: 0 Fetch new pools opened through gecko terminal and extract the mints used in the pool. API used here: [https://www.geckoterminal.com/dex-api](https://www.geckoterminal.com/dex-api) . Note [`INTERMEDIUM_MINT_COUNT_FROM_GECKO`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_count_from_gecko) can only return ~20-30 mints at maximum due to their limitation on the api. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_from_file) INTERMEDIUM\_MINT\_FROM\_FILE This provides a way to load intermedium mints for the bots to use. This is useful if you have a set of mints in mind that you want to use, or you write your own script to fetch intermedium tokens for the bot to use. Example file: ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_from_files) INTERMEDIUM\_MINT\_FROM\_FILES Same as `INTERMEDIUM_MINT_FROM_FILE` except this take in a list of files. Example: ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_list) INTERMEDIUM\_MINT\_LIST Just a list of mints. This is convenient when you just want to manually specify a few mints to run, you can do this without creating another file. Example: ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_exclude_from_file) INTERMEDIUM\_MINT\_EXCLUDE\_FROM\_FILE This provides a way to exclude certain mints from intermedium mints. This is useful when you want to exclude certain mints from birdeye/gecko. Especially if you only want to do SOL arbs and don't want to include USDC/USDT in the route, as it can be heavy for your RPC to load all. The following example is to exclude USDC/USDT from your intermedium mints. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_from_addresses) INTERMEDIUM\_MINT\_FROM\_ADDRESSES This allows you to copy trade top players and use whatever intermedium mints they use. For example, if you want to copy ben/bob's most recent 100 tx: #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#max_mint_count) MAX\_MINT\_COUNT You can define an overall MAX\_MINT\_COUNT, and a MAX\_MINT\_COUNT for every address you are tracking. The bot will rank all the mints by number of times it appears and keep at most `MAX_MINT_COUNT` mints. If you have `INTERMEDIUM_MINT_EXCLUDE_FROM_FILE` defined, the mints will be excluded first then cut off the top rank. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_from_circular) INTERMEDIUM\_MINT\_FROM\_CIRCULAR If you have API key from [https://www.circular.bot/ref/SMB](https://www.circular.bot/ref/SMB) , you can directly set it with the bot. It's the exact param as their document. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_filter) INTERMEDIUM\_MINT\_FILTER This is a useful feature when you run multiple machines and want them to run different mints. You can use all the other ways to fetch, and use this filter to randomly choose a few for all your machines. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bot) BOT --------------------------------------------------------------------------------------------- This section contains configurations for the bot itself. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#auto_restart) AUTO\_RESTART Default: 60 Unit in minutes. By default, the bot will auto restart every 60min. This will also restart JupV6 if hosted together, to allow fetching the lasted high volume tokens from birdeye. If set to 0, the bot will not auto restart. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_simulation) ENABLE\_SIMULATION Default: true Whether to run simulateTransaction before sending the transaction. This can help to reduce the number of failed transactions landed on chain if spam mode is enabled. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_jito_rpc) ENABLE\_JITO\_RPC Default: false DO NOT SET THIS TO TRUE if you don't know what is a Jito RPC. You have to use a Jito RPC when you enable this. When this is enabled, the bot will use `simulateBundle` to run simulation, which can give you the actual profit with the simulation. This value is more accurate than then one calculated from Jupiter quote. This is especially useful when you set `spamFeeBps` in your base-mint.json Note: Most providers don't provide Jito RPC. Right now the only options to get one is to either host a RPC node yourself, or rent a dedicated RPC node from a provider like Helius/Triton. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#encrypt_private_key) ENCRYPT\_PRIVATE\_KEY Default: true By default the bot will encrypt your private key on first run, and ask you to remove your private key for better security practice. You can turn off this feature but it's highly not recommended. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fixed_compute_unit_limit) FIXED\_COMPUTE\_UNIT\_LIMIT Default: 0 You can use a fixed COMPUTE\_UNIT\_LIMIT to avoid the additional computation needed. When this is set to 0, the bot will call jup to get an estimation of the COMPUTE\_UNIT\_LIMIT and use that instead. Which is more accurate but a bit slower, and will make 2 additional rpc calls getRecentPrioritizationFees and simulateTransaction for each quote. A suggested value is 250000 for `USE_DIRECT_ROUTE_ONLY=true` and 350000 for `USE_DIRECT_ROUTE_ONLY=false` The suggested value should work for 90% of the cases. Note: when using flashloan, the bot will add 100000 to the value to account for the additional instructions needed. You should not set this to be less than 200000, it may result in not landing anything successfully. Read more about what is compute unit limit [here](https://solana.com/docs/core/fees#compute-unit-limit) . ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#compute_unit_limit_multiplier) COMPUTE\_UNIT\_LIMIT\_MULTIPLIER Default: 1 Bot will use an estimated value for compute unit limit based on the route. The default value can make sure 95%+ of the tx have enough compute unit. But this can be too big/too small based on different `JUP_MAX_ACCOUNT`, you can adjust this value to higher/lower as needed. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#max_compute_time) MAX\_COMPUTE\_TIME Default: 400 The maximum compute time to send tx for an opportunity. If you are trying to catch an opportunity right after it appears, you usually don't want to send anything when it takes too long to calculate in the first place. If the time took to compute is greater than `MAX_COMPUTE_TIME`, the bot won't send any tx for it. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#max_wrap_sol_compute_unit_price) MAX\_WRAP\_SOL\_COMPUTE\_UNIT\_PRICE Default: 20\_000\_000 The max compute unit price you set to wrap/unwrap SOL. This can be useful when the network is super congested. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#memo) MEMO Text that will be added as the last instruction in the transaction. You can use this to distinguish which server you are running the bot from by setting a different value for each server. When not set a MEMO will NOT be added to your tx. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#pull_blockhash_with_yellowstone) **PULL\_BLOCKHASH\_WITH\_YELLOWSTONE** Default: false when enabled, will use your Yellowstone to pull blockhash instead of RPC. This can save you a lot of RPC credits. You must also set [`YELLOWSTONE_URL`](https://docs.solanamevbot.com/home/fundamentals/bot-configurations#yellowstone_url) to use this. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#min_sol_balance) MIN\_SOL\_BALANCE Default: 0 Units in lamports. Does nothing by default. When set to a none 0 value, the bot will periodically check the wallet's SOL balance, and when it drops below the value, it will unwrap all the WSOL and wrap only the amount needed back, to rebalance the SOL account to avoid running out of SOL. e.g. set this to 1000000000 will auto balance your wsol/sol accounts when your sol drops below 1. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#rpc_url) RPC\_URL The RPC that is used to read data. When using default JUPITER\_URL value, this RPC will also be used to spin up JupV6 API. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#skip_same_opportunity) SKIP\_SAME\_OPPORTUNITY Default: false When enabled and you are using fixed trade size(either using tradeSize or tradeRange with linear strategy), the bot will check if it's the same as last time and not generate a new opportunity for it if it's the same. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#pay_fee_with_profit) PAY\_FEE\_WITH\_PROFIT Default: false This will only affect SOL as base mint. When enabled, the bot will unwrap your profit before sending the jito tip/bot fee, which can be very useful if you don't leave much SOL balance in your wallet, or if you are targeting larget opportunities and afraid to not have enough SOL to pay for a big hit. ![](https://docs.solanamevbot.com/home/~gitbook/image?url=https%3A%2F%2F3811539071-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fx2rxpD03KDvMgJqIkdla%252Fuploads%252F2kRcFoBsiJWY8fpEbMwt%252FScreenshot%25202024-10-25%2520at%252012.26.07%25E2%2580%25AFAM.png%3Falt%3Dmedia%26token%3D8ba84984-e277-4478-8ae7-edbbfd9d3018&width=768&dpr=4&quality=100&sign=4bbf070&sv=2) ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jupiter_worker_count) JUPITER\_WORKER\_COUNT Default: 1 Config how many worker(threads) to use when fetching quotes from Jupiter. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#download_rpc_url) DOWNLOAD\_RPC\_URL Default: '' When set, ths RPC url will be used when loading [`INTERMEDIUM_MINT_FROM_ADDRESSES`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_from_addresses) . This is useful when your main RPC does not support transaction history. Tested you can use a helius free RPC plan with [`DOWNLOAD_RPC_RATE_LIMIT_PER_SECOND`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#download_rpc_rate_limit_per_second) set to 5 to download all the intermedium mint from addresses. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#download_rpc_rate_limit_per_second) DOWNLOAD\_RPC\_RATE\_LIMIT\_PER\_SECOND Default: 0 When set to a none 0 value, it will apply a rate limit when doing RPC calls. This is helpful when using the free plan for some RPC. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_fixed_size_optimization) ENABLE\_FIXED\_SIZE\_OPTIMIZATION Default: false When you use blind quote mode, the bot will quote the first half of the transaction from SOL->X, then quote the second half X->SOL. The second quote need to wait for the first one's result before it can start. For fixed size, you can enable this optimization, which will use the quote result from the previous round's quote as an estimation, so the SOL->X and X->SOL quote can be sent out simultaneously. This will result in a shorter Jupiter quote time. But occasionally the two quote will find the same pool, which makes the oppotunity invalid, this is especially true when you are trading a new mint where it only has limited pools. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jito) JITO ----------------------------------------------------------------------------------------------- Jito provides a way to send transactions through [bundles](https://jito-labs.gitbook.io/mev/searcher-resources/bundles) . Bundles will only land when it succeeds, which is perfect for making arbitrage trade! You can enable jito by setting `ENABLE_JITO=true` in your `config.yaml` file. The bot will then send all transactions to all jito regions defined in [`BLOCK_ENGINES`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#block_engines) through Jito's http endpoint. Following is the Jito related configs you can set in your `config.yaml` file ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_jito) ENABLE\_JITO Default: true Whether to use Jito bundle to send transaction. The good part about Jito is, it will never land if the transaction fails. So everything lands is profit. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_jito_grpc) ENABLE\_JITO\_GRPC Default: false Whether to use jito GRPC to send bundles. This is NOT recommended unless you have a key with high rate limit. NOTE: BLOCK\_ENGINES does not apply to jito GRPC. You need to set BLOCK\_ENGINE\_URL instead, and you can only send to one region with GRPC. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#block_engine_url) BLOCK\_ENGINE\_URL Only apply to Jito GRPC. The block engine url you want to use with your jito GRPC. e.g. `amsterdam.mainnet.block-engine.jito.wtf` ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jito_keypair) JITO\_KEYPAIR Only apply to Jito GRPC. The key json file you want to use with your jito GRPC. e.g. `jito.json` ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#block_engines) BLOCK\_ENGINES Default: ny,amsterdam,frankfurt,tokyo,slc You should not change this value unless you really know what you are doing. Config which block engines to send to for jito transactions. This now also accepts urls, if you have a custom jito endpoint you can set it here. For example if you want to use url for the official ny endpoint, you can use [https://ny.mainnet.block-engine.jito.wtf/api/v1/](https://ny.mainnet.block-engine.jito.wtf/api/v1/) ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#tip_strategies) TIP\_STRATEGIES Default value: \['dynamic'\] Supported values: dynamic, static, static-list, fixed, fixed-list, fixed-range Define which strategy to use when paying for jito's tip. **DO NOT** use `static` and `fixed` together before version 1.3.16. **dynamic**: The onchain program will calculate your real profit and use a percentage defined with [`DYNAMIC_TIP_BP`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#dynamic_tip_bp) to pay for the jito tip. This always send through the [sendBundle](https://docs.jito.wtf/en/latest/lowlatencytxnsend.html#id20) endpoint of jito. **static**: This will use a percentage defined with [`STATIC_TIP_BP`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#static_tip_bp) based on the projected profit(the one you see in your opportunity) to pay for the jito tip. This means the actual percentage of the profit when the tx land may not be the same as the projected profit. This will use the [sendTransaction](https://docs.jito.wtf/en/latest/lowlatencytxnsend.html#id19) endpoint by default, and [sendBundle](https://docs.jito.wtf/en/latest/lowlatencytxnsend.html#id20) when [`USE_SEPARATE_TIP_ACCOUNT`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_separate_tip_account) is enabled. static-list: Similar to static, but you send multiple tx with different static bp for the same opportunity. You need to set `STATIC_TIP_BP_LIST` for this to work. **fixed**: This will use a fixed number(SOL lamports) as your jito profit with [`FIXED_TIP`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fixed_tip) . This will use the [sendTransaction](https://docs.jito.wtf/en/latest/lowlatencytxnsend.html#id19) endpoint by default, and [sendBundle](https://docs.jito.wtf/en/latest/lowlatencytxnsend.html#id20) when [`USE_SEPARATE_TIP_ACCOUNT`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_separate_tip_account) is enabled. **fixed-list**: Similar to fixed, but you send multiple tx with different fixed tip for the same opportunity. You need to set [`FIXED_TIP_LIST`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fixed_tip_list) for this to work. fixed-range: Similar to fixed-list, but you instead of you provide the tip amount, bot will automatically generate it for you. You need to define `FIXED_TIP_RANGE`, `FIXED_TIP_RANGE_COUNT`, `FIXED_TIP_RANGE_STRATEGY` for this to work. **Note**: [sendBundle](https://docs.jito.wtf/en/latest/lowlatencytxnsend.html#id20) and [sendTransaction](https://docs.jito.wtf/en/latest/lowlatencytxnsend.html#id19) does not share the same rate limit. they both have 1/ip/wallet/region/s rate limit. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#dynamic_tip_bp) DYNAMIC\_TIP\_BP Default: 0 Your [`TIP_STRATEGIES`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#tip_strategies) need to has `dynamic` in it for this to take effect. Jito tip as part of your profit. 5000 means 50% of your profit will be used as Jito tip. The higher this number, the better chance you may land your transaction, but in return, less profit earned. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#static_tip_bp) STATIC\_TIP\_BP Default: 0 Your [`TIP_STRATEGIES`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#tip_strategies) need to has `static` in it for this to take effect. Jito tip as part of your profit. 5000 means 50% of your projected profit will be used as Jito tip. The higher this number, the better chance you may land your transaction, but in return, less profit earned. The tx landed with this may not have the same percentage as you defined, as the tip value is set before you send the tx, but the actual profit may vary when it actually landed. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#static_tip_bp_list) STATIC\_TIP\_BP\_LIST Your [`TIP_STRATEGIES`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#tip_strategies) need to has `static-list` in it for this to take effect. Sending multiple tx with different bp. Example ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fixed_tip) FIXED\_TIP Default: 0 Your [`TIP_STRATEGIES`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#tip_strategies) need to has `fixed` in it for this to take effect. Use a static jito tip when sending to Jito. Unit is SOL lamports. The bot will always use the same tip for all tx it sends, and still make sure the tx landed are all profitable. When you set both `DYNAMIC_TIP_BP` and `FIXED_TIP`, bot will send both percentage based and fixed tip transactions. **Note**: If you are using this without `USE_SEPARATE_TIP_ACCOUNT` set to true, the bot will use `sendTransaction` endpoint to sent it, which is using a different rate limit then `sendBundle` which is used with `DYNAMIC_TIP_BP`. Example with a `FIXED_TIP` of 20000 : [https://solscan.io/tx/ZokReqrVXkQgC3gjJoBRDr4sNXKNAuR3Fb4pwD5rFoMRjF4caGwacDEavDiD5CPZRkURgaeCaw73kwqTDSR4F32](https://solscan.io/tx/ZokReqrVXkQgC3gjJoBRDr4sNXKNAuR3Fb4pwD5rFoMRjF4caGwacDEavDiD5CPZRkURgaeCaw73kwqTDSR4F32) ![](https://docs.solanamevbot.com/home/~gitbook/image?url=https%3A%2F%2F3811539071-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fx2rxpD03KDvMgJqIkdla%252Fuploads%252Fkfz4kPVGsme4PD5M3y0a%252FScreenshot%25202024-10-18%2520at%25202.29.27%25E2%2580%25AFPM.png%3Falt%3Dmedia%26token%3D332d53ef-026a-42e5-9b91-2e0a8e546a9a&width=768&dpr=4&quality=100&sign=37d2758d&sv=2) ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fixed_tip_list) FIXED\_TIP\_LIST Default: \[\] Your [`TIP_STRATEGIES`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#tip_strategies) need to has `fixed-list` in it for this to take effect. Example: Use a static jito tip when sending to Jito. Unit is SOL lamports. The bot will always use the same tip for all tx it sends, and still make sure the tx landed are all profitable. When you set both `DYNAMIC_TIP_BP` and `FIXED_TIP_LIST`, bot will send both percentage based and fixed tip transactions. **Note**: If you are using this without `USE_SEPARATE_TIP_ACCOUNT` set to true, the bot will use `sendTransaction` endpoint to sent it, which is using a different rate limit then `sendBundle` which is used with `DYNAMIC_TIP_BP`. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fixed_tip_range) FIXED\_TIP\_RANGE Your [`TIP_STRATEGIES`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#tip_strategies) need to has `fixed-range` in it for this to take effect. Define a range for your tip. Bot will generate a list of different tips based on the strategy you choose. Example: ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fixed_tip_range_count) FIXED\_TIP\_RANGE\_COUNT How many different tip you want to generate for your tip range. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fixed_tip_range_strategy) FIXED\_TIP\_RANGE\_STRATEGY Valid values: `random`, `exponential`, `linear` `linear` will generate trade sizes evenly within the range. `random` will generate a trade size randomly each time. `exponential` will generate trade size on exponential values. For example for range 10 - 1000, with count 5, it will generate trade size like this: \[10, 77, 315, 668, 1000\] ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#max_tip) MAX\_TIP Default: 0 Set the max tip the bot pays when using `dynamic` or `static` jito tip trategy. Unit is SOL lamports. The bot also has a max tip amount of 80% of your remaining SOL balance, to avoid missing big opportunities when not having enough SOL left. 0 means no no max tip. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jito_uuid) JITO\_UUID By default, jito has a 5/s/ip rate limit. You can ask for a rate limit raise from jito, and they will give you an uuid that you can set with the bot. NOTE: Currently the key has a bug and the rate limit for the key is universal not per ip. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#show_jito_logs) SHOW\_JITO\_LOGS Default: false When this is enabled, response for sending jito bundles will be added to the output log. This is helpful if you are trying to figure out how often you are hitting jito's rate limit, or testing your UUID to see if it works. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_separate_tip_account) USE\_SEPARATE\_TIP\_ACCOUNT Default: false When this is enabled, a new solana address will be used to send tip in its own tx instead of sending to Jito directly for every Jito transaction. Jito currently is rate limiting bundles based on the accounts in the tx that does the tip, this feature can get around this rate limit by wallet issue to allow you using the same wallet in all locations. This is useful when you have machines in multiple locations but still trying to use the same wallet to run the bot. Example transaction: [https://solscan.io/tx/41CBfg3cg1eKvxgJHJ7TqhmrGJ73BxikDVALV7SQYM4FmMqt22Cfpc18f5bErATSUoTDccKtFSVpGQe1WvMr1b9f](https://solscan.io/tx/41CBfg3cg1eKvxgJHJ7TqhmrGJ73BxikDVALV7SQYM4FmMqt22Cfpc18f5bErATSUoTDccKtFSVpGQe1WvMr1b9f) ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_different_tx_for_block_engines) USE\_DIFFERENT\_TX\_FOR\_BLOCK\_ENGINES Default: false This will send different TX for different block engines, in theory increase your chance to land, and can some time land multiple tx for the same opportunity. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_different_tip_account_for_block_engines) USE\_DIFFERENT\_TIP\_ACCOUNT\_FOR\_BLOCK\_ENGINES Default: false This will use different tip account for different block engines, in theory increase your chance to land, and can some time land multiple tx for the same opportunity. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_multiple_ip_addresses_for_jito) ENABLE\_MULTIPLE\_IP\_ADDRESSES\_FOR\_JITO Default: false This is the build in support for multiple ips on your machine. When this is enabled, bot will scan all your ip and round robin it when sending through jito. You can also define an ip range with `START_IP` and `END_IP`. Or `IP_LIST` to manually define the list of ips to use. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#start_ip) START\_IP Only applied when you have ENABLE\_MULTIPLE\_IP\_ADDRESSES\_FOR\_JITO set to true. The start ip for bot to use, in IPV4 format. E.G. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#end_ip) END\_IP Only applied when you have ENABLE\_MULTIPLE\_IP\_ADDRESSES\_FOR\_JITO set to true. The end ip for bot to use, in IPV4 format. E.G. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#ip_list) IP\_LIST Define the exact ips you want to use for `ENABLE_MULTIPLE_IP_ADDRESSES_FOR_JITO` . Example: [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#spam) SPAM ----------------------------------------------------------------------------------------------- Spam strategy means you will send many transactions and hope some of them get landed and landed successful. This is a more advanced strategy as you may lose money on gas fee if you didn't config it carefully. You can enable spam by setting `ENABLE_SPAM=true` in your `config.yaml` file. The bot will then use all the rpcs you defined for `SEND_RPC_URLS` to send potential profitable transactions. Jito and spam can be enabled together, the bot will just send 2 different transactions, one through jito and one through rpc. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_spam) ENABLE\_SPAM Default: false Whether to send a normal transaction for every potential arbitrage oppotunity. Note most of the transactions will not even land on chain, for the ones that does, 90% of them will fail. Set ENABLE\_SIMULATION=true can help reduce the number of failed transactions. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#compute_unit_price) COMPUTE\_UNIT\_PRICE Default: 0 The COMPUTE\_UNIT\_PRICE aka gas fee set for the transaction. Note: this is not SOL lamport. Generally the higher this is, the better chance your tx can actually land on chain. Learn more about what this is here: [https://solana.com/docs/core/fees#prioritization-fee](https://solana.com/docs/core/fees#prioritization-fee) This only applies to spam, jito transactions set its own value as it's not needed. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#max_retries) MAX\_RETRIES Default: 0 This is a config for [sendTransaction](https://solana.com/docs/rpc/http/sendtransaction) RPC method, Maximum number of times for the RPC node to retry sending the transaction to the leader. The higher this number, the more chance your tx can land, but also lead to high chance of failure, as retried tx is likely too late for the opportunity. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#priority_fee_strategy) PRIORITY\_FEE\_STRATEGY Default: fixed Supported strategies: profit-based, fixed, helius. You can only use one of them. **fixed**: This will use the value of `COMPUTE_UNIT_PRICE` setting to set the compute unit price value. **helius**: When using this, you also need to define [`HELIUS_API_KEY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#helius_api_key) , [`PRIORITY_FEE_UPDATE_INTERVAL`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#priority_fee_update_interval) and [`PRIORITY_FEE_PERCENTILE`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#priority_fee_percentile) . This will pull the fee dynamically from helius and use a certain percentile value from it. **profit-based**: You can only use this when you have [`ENABLE_SIMULATION`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_simulation) and [`ENABLE_JITO_RPC`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_jito_rpc) . This will use the value of `SPAM_FEE_BPS` to decide what fee to use for your tx. 100 `SPAM_FEE_BPS` means you will pay 1% of your simulated profit as the fee for this tx. This is a very high risk strategy, and can burn you a lot of SOL very quickly. But can also be rewarding when you hit big like this [82 SOL arb](https://solscan.io/tx/39u6y9isQvL776ZpFri9DRQxkckTdE36adwYnFT9QSv9PBCc7KWBy3Pf5y2Emy8bYwfKNMi98tg7RMDezGqHLFNL) . ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#priority_fee_update_interval) PRIORITY\_FEE\_UPDATE\_INTERVAL Default: 600 Unit in seconds. This controls how often the priority fee is updated. This only works when you set [priorityFeePercentile](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#priorityfeepercentile) in your base-mint.json ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#send_rpc_urls) SEND\_RPC\_URLS The RPCs used to send transactions. This can be the same as `RPC_URL` You can also set multiple RPCs here, split by comma. Setting multiple ones can increase the rate of tx landing and success. Example: This is an example instruction when setting [`USE_DIFFERENT_TX_FOR_SENDERS`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_different_tx_for_senders) `=true` This image shows that the second RPC in the `SEND_RPC_URLS` list sent this tx(first RPC is RPC 0). ![](https://docs.solanamevbot.com/home/~gitbook/image?url=https%3A%2F%2F3811539071-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fx2rxpD03KDvMgJqIkdla%252Fuploads%252FVnae4YEo2KEojMGUccGl%252FScreen%2520Shot%25202024-05-09%2520at%25209.56.46%2520PM.png%3Falt%3Dmedia%26token%3D0bf95275-de19-4f8d-8741-0a445c02a75a&width=768&dpr=4&quality=100&sign=a1ce5be9&sv=2) ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#priority_fee_percentile) PRIORITY\_FEE\_PERCENTILE Value from 0 to 100(you can set higher than 100 but not recommended). Automatically set COMPUTE\_UNIT\_PRICE based on current priority fee level. You need to set `HELIUS_API_KEY` in order to use this. The bot utilize helius's [priority fee api](https://docs.helius.dev/solana-rpc-nodes/priority-fee-api) , to fetch the latest priority fee levels. The response is something like the following from the api, value map to the response, aka 0 means min, 25 means low, 50 means medium, 75 means high, 100 means veryHigh. If the current response looks like below, and you set 30 as the value for `priorityFeePercentile`, the auto generated COMPUTE\_UNIT\_PRICE would be 10000 + (60082 - 10000) \* ((30 - 25) / 25) = 20016. Note the value for each level will change all the time as market moves. When this is set, it will override the `COMPUTE_UNIT_PRICE` value in config.yaml file. This should be set together with `MAX_COMPUTE_UNIT_PRICE`. The max `COMPUTE_UNIT_PRICE` you are willing to set. This is helpful to prevent setting a huge priority fee as market moves. Example usage of the config: ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#spam_fee_bps) SPAM\_FEE\_BPS This allows you to set your gas fee to be a fixed percentage of the projected gain. Note you can only set one of `PRIORITY_FEE_PERCENTILE` and `SPAM_FEE_BPS`, not both. Example usage of the config: This config will use 5% of projected profit as the fee. Note this is not 5% of the final profit, it's 5% of the projected profit that bot calculated based on Jup API. If you set [`ENABLE_JITO_RPC`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_jito_rpc) , this will be based on the simulated profit, which is more accurate than the projected one. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#max_compute_unit_price) MAX\_COMPUTE\_UNIT\_PRICE Default: 0 For helius and profit-based PRIORITY\_FEE\_STRATEGY, this field is required. This is to prevent you from paying some absurd amount of gas fee. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#min_compute_unit_price) MIN\_COMPUTE\_UNIT\_PRICE Default: 0 For helius and profit-based PRIORITY\_FEE\_STRATEGY, you can set a min compute unit price. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#skip_preflight) SKIP\_PREFLIGHT Default: true This is a similar config to ENABLE\_SIMULATION. The difference is ENABLE\_SIMULATION will run the simulation with your RPC\_URL before sending it, when you have SKIP\_PREFLIGHT=false, the RPC received your transaction will run the simulation before it forward to the validator. This will also make landing slower as it's an additional call, but also it can reduce the failed transactions you land with ENABLE\_SPAM. You should only have at most one of `SKIP_PREFLIGHT=false` and `ENABLE_SIMULATION=true`. Setting both is not worth it. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#spam_restrict_level) SPAM\_RESTRICT\_LEVEL Default: 0 Valid values are 0,1,2,3,4,5. This config will try to limit how long a tx land compares to when you send it when using spam. 0 is no restriction, the same behavior as before. 5 is maximum restriction and will only allow the tx to land within ~1-2 slots. Note the exact restriction time for each level can be affected by your RPC's latency and performance. You may not land anything when you set this value to 4-5 if your RPC is not fast enough. This config allows you to use a very high fee for spam strategy and also not losing too much money on failed ones. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_different_tx_for_senders) USE\_DIFFERENT\_TX\_FOR\_SENDERS Default: false When setting multiple [`SEND_RPC_URLS`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#send_rpc_urls) , this config will send a different tx for each of the RPCs. When this config is set to false, the same tx will be send to all RPCs. You can also see which RPC send the tx in the last instruction of the tx. Index start from 0. See later section for example\*. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute) BLOXROUTE --------------------------------------------------------------------------------------------------------- [BloXRoute](https://docs.bloxroute.com/solana/trader-api-v2) is a service provider that provides service to send transactions through their endpoint. Our bot has a special collaboration with them to provide you this service at a discounted rate. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_bloxroute) ENABLE\_BLOXROUTE Default: false You need to set [`ENABLE_SPAM`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_spam) to true when enabling this. Make sure you set the right value for [`BLOXROUTE_REGION`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_region) when enabling this. We have a collaboration with BloXroute, when this is set to true, your spam transaction will be sent through [BloXroute's Trader API v2](https://docs.bloxroute.com/solana/trader-api-v2) , in addition to all your SEND\_RPC\_URLS. Note when a tx landed successfully with BloXroute, it charges an additional 0.0005 SOL as fee to use BloXroute's api and send through its staked connection. The bot already takes this into consideration and will fail the tx if your profit is not enough to pay for this fee + the bot fee. But do take this into consideration when you enable it. You need to have your own key to use BloXroute to send. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_region) BLOXROUTE\_REGION Default: ny Only relevant when you have `ENABLE_BLOXROUTE=true`. Valid values are ny/uk/la/tokyo/germany/amsterdam. Should only set it to be the closest one to your server. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_region_list) BLOXROUTE\_REGION\_LIST If you want to send to multiple region for the same tx, you can use this. example: ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_key) BLOXROUTE\_KEY Default: '' This is required to use Bloxroute. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_fee) BLOXROUTE\_FEE Default: 500\_000 The bloxroute fee you pay, in theory the high this is, the faster you tx can be delivered. Minimum is 500\_000. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_dynamic_fee) BLOXROUTE\_DYNAMIC\_FEE Default: false Use dynamic fee for Bloxroute instead the fixed value from `BLOXROUTE_FEE`. The fee will calculate the fee based on the projected profit similar to STATIC\_TIP\_BP in Jito. You can set the base points used with `BLOXROUTE_DYNAMIC_FEE_BP` If the calculated fee is smaller than `BLOXROUTE_FEE`, `BLOXROUTE_FEE` will be used as the fee. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_dynamic_fee_bp) BLOXROUTE\_DYNAMIC\_FEE\_BP Default: 0 Calculate BloXRoute fee based on your projected profit. 500 means 5% of your projected profit will be used as the fee paid to BloXRoute. The tx landed with this may not have the same percentage as you defined, as the tip value is set before you send the tx, but the actual profit may vary when it actually landed. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_max_dynamic_fee) BLOXROUTE\_MAX\_DYNAMIC\_FEE Default: 0 Maximum dynamic fee in lamports, 0 to disable ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_jito_only) BLOXROUTE\_JITO\_ONLY Default: false When enabled, bloxroute will only send through jito. aka you won't see failed tx with bloxroute. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock) NEXTBLOCK --------------------------------------------------------------------------------------------------------- [NextBlock](https://nextblock.io/) is a service provider that provides service to send transactions through their endpoint. There's no default key for NextBlock, you need to set your own key to use this. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_nextblock) ENABLE\_NEXTBLOCK Default: false You need to set [`ENABLE_SPAM`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_spam) to true when enabling this. Make sure you set the right value for [`NEXTBLOCK_REGION`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_region) when enabling this. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_region) NEXTBLOCK\_REGION Default: ny Supported region: `ny` or `fra` ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_region_list) NEXTBLOCK\_REGION\_LIST If you want to send to multiple region for the same tx, you can use this. example: ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_key) NEXTBLOCK\_KEY You need to set this to use NextBlock ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_fee) NEXTBLOCK\_FEE Default: 1000000 The fee you pay to nextblock for each successful transaction ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_dynamic_fee) NEXTBLOCK\_DYNAMIC\_FEE Default: false Use dynamic fee for NextBlock instead the fixed value from `NEXTBLOCK_FEE`. The fee will calculate the fee based on the projected profit similar to STATIC\_TIP\_BP in Jito. You can set the base points used with `NEXTBLOCK_DYNAMIC_FEE_BP` If the calculated fee is smaller than `NEXTBLOCK_FEE`, `NEXTBLOCK_FEE` will be used as the fee. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_dynamic_fee_bp) NEXTBLOCK\_DYNAMIC\_FEE\_BP Default: 0 Calculate NextBlock fee based on your projected profit. 500 means 5% of your projected profit will be used as the fee paid to NextBlock. The tx landed with this may not have the same percentage as you defined, as the tip value is set before you send the tx, but the actual profit may vary when it actually landed. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_max_dynamic_fee) NEXTBLOCK\_MAX\_DYNAMIC\_FEE Default: 0 Maximum dynamic fee in lamports, 0 to disable ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_show_sending_error) NEXTBLOCK\_SHOW\_SENDING\_ERROR Default: true Show NextBlock sending error messages in logs ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_jito_only) NEXTBLOCK\_JITO\_ONLY Default: false When enabled, Nextblock will only send through jito. aka you won't see failed tx with Nextblock. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal) TEMPORAL ------------------------------------------------------------------------------------------------------- [Temporal](https://use.temporal.xyz/) is a service provider that provides service to send transactions through their endpoint. There's no default key for Temporal, you need to set your own key to use this. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_temporal) ENABLE\_TEMPORAL Default: false You need to set [`ENABLE_SPAM`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_spam) to true when enabling this. Make sure you set the right value for [TEMPORAL\_REGION](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_region) when enabling this. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_region) TEMPORAL\_REGION Default: pit1 Supported region: `pit1` ,`ams1`, `fra2` ,`ewr1` ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_region_list) TEMPORAL\_REGION\_LIST If you want to send to multiple region for the same tx, you can use this. example: ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_key) TEMPORAL\_KEY You need to set this to use Temporal. Get one from their website. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_fee) TEMPORAL\_FEE Default: 1\_000\_000 The fee you pay to temporal for each successful transaction ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_dynamic_fee) TEMPORAL\_DYNAMIC\_FEE Default: false Use dynamic fee for Temporal instead the fixed value from `TEMPORAL_FEE`. The fee will calculate the fee based on the projected profit similar to STATIC\_TIP\_BP in Jito. You can set the base points used with `TEMPORAL_DYNAMIC_FEE_BP` If the calculated fee is smaller than `TEMPORAL_FEE`, `TEMPORAL_FEE` will be used as the fee. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_dynamic_fee_bp) TEMPORAL\_DYNAMIC\_FEE\_BP Default: 0 Calculate Temporal fee based on your projected profit. 500 means 5% of your projected profit will be used as the fee paid to Temporal. The tx landed with this may not have the same percentage as you defined, as the tip value is set before you send the tx, but the actual profit may vary when it actually landed. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_max_dynamic_fee) TEMPORAL\_MAX\_DYNAMIC\_FEE Default: 0 Maximum dynamic fee in lamports, 0 to disable ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_show_sending_error) TEMPORAL\_SHOW\_SENDING\_ERROR Default: true Show temporal sending error messages in logs [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fast) FAST ----------------------------------------------------------------------------------------------- [Fast](https://docs.fast.circular.bot/fast-docs) is a service provider that provides service to send transactions through their endpoint. There's no default key for Fast, you need to set your own key and set it with [`CIRCULAR_API_KEY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#circular_api_key) Fast currently only has one region amsterdam. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_fast) ENABLE\_FAST Default: false You need to set [`ENABLE_SPAM`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_spam) to true when enabling this. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fast_fee) FAST\_FEE Default: 1\_000\_000 The fee you pay to fast for each successful transaction ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fast_dynamic_fee) FAST\_DYNAMIC\_FEE Default: false Use dynamic fee for Fast instead the fixed value from `FAST_FEE`. The fee will calculate the fee based on the projected profit similar to STATIC\_TIP\_BP in Jito. You can set the base points used with `FAST_DYNAMIC_FEE_BP` If the calculated fee is smaller than `FAST_FEE`, `FAST_FEE` will be used as the fee. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fast_dynamic_fee_bp) FAST\_DYNAMIC\_FEE\_BP Default: 0 Calculate Fast fee based on your projected profit. 500 means 5% of your projected profit will be used as the fee paid to Fast. The tx landed with this may not have the same percentage as you defined, as the tip value is set before you send the tx, but the actual profit may vary when it actually landed. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fast_max_dynamic_fee) FAST\_MAX\_DYNAMIC\_FEE Default: 0 Maximum dynamic fee in lamports, 0 to disable ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fast_show_sending_error) FAST\_SHOW\_SENDING\_ERROR Default: true Show fast sending error messages in logs ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fast_jito_only) FAST\_JITO\_ONLY Default: false When enabled, Fast will only send through jito. aka you won't see failed tx with Fast. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#logging) LOGGING ----------------------------------------------------------------------------------------------------- ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#debug) DEBUG Default: false Enable debug mode for additional logging ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_landing_log) ENABLE\_LANDING\_LOG Default: false When this is enabled, it will output an additional `WIN` log when a transaction is landed. Though if you turn this on while having ENABLE\_SIMULATION=false, it may consume a lot of your RPC credits. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_sending_log) ENABLE\_SENDING\_LOG Default: true When this is enabled, it will output all the tx the bot sent out, through which provider(jito/rpc/bloxroute etc.). You can turn this off if the log is too overwhelming to you. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#hide_error) HIDE\_ERROR Default: false If you don't want to see the error messages, you can turn this to true which will hide them. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#flashloan) FLASHLOAN --------------------------------------------------------------------------------------------------------- Flashloan is a power tool when you have limited budget. You can set a higher trade size than what you have in your wallet, and get arbitrage opportunities that you usually won't be able to get. > Flashloan may not success 100% of the time. When the vault you are borrowing from does not have enough tokens, your transaction will fail due to insufficient fund. Though this should rarely happen. When flashloan is enabled with the bot, and you are using SOL as one of your base mint, you should also set `WRAP_SOL_AMOUNT` which is the amount of sol you want to wrap into WSOL. The bot will only use flashloan when the amount is larger than `WRAP_SOL_AMOUNT`, for trade with less amount it will just use the amount in the wallet, to maximize the potential profit. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_flashloan) ENABLE\_FLASHLOAN Default: false Whether to enable flashloan. Note you need to have at least 0.5 SOL in the wallet to enable flashloan. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#flashloan_provider) FLASHLOAN\_PROVIDER Default: kamino Currently supported values are `solend`, `kamino` #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#kamino) kamino Kamino is the recommended provider. It does not charge any fee and the liquidity pool is very deep so you can easily borrow up to a few million. Example: [https://solscan.io/tx/3o83KouSGE2tYzm7FgrPyXDpQozcytwEDZ8g1UBBn6aUrJoRXQmQUz2d56iHymmobCGy54YhKF9DKzxPnAHxLxEj](https://solscan.io/tx/3o83KouSGE2tYzm7FgrPyXDpQozcytwEDZ8g1UBBn6aUrJoRXQmQUz2d56iHymmobCGy54YhKF9DKzxPnAHxLxEj) ![](https://docs.solanamevbot.com/home/~gitbook/image?url=https%3A%2F%2F3811539071-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fx2rxpD03KDvMgJqIkdla%252Fuploads%252Fxn1ZOVtN417KYD97JnNK%252FScreenshot%25202025-01-29%2520at%25209.30.04%25E2%2580%25AFPM.png%3Falt%3Dmedia%26token%3D18501469-606c-4736-b3ea-d439fd68185b&width=768&dpr=4&quality=100&sign=b64c6502&sv=2) #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#solend) solend Soland flashloan charges a 0.04% fee based on the amount you borrow. So a trade that borrows 1000 USDC as shown above will need to find an opportunity that gives you at least 1000.4 USDC back for you to make a profit, compares to at least 1000 USDC when you are not using flashloan. This will results in more failed transactions if you send using spam, or less overall landing if use with Jito. The upside is you can get opportunities that is only possible with big amount. You can also use flash loan as a kick start option to minimize your risk of putting too much amount in your wallet. Solend only adds 2 more instructions instead of 4. So you will run into less `Generated transaction is too large` error compares to marginfi, but paying an additional fee as a trade off. Example: [https://solscan.io/tx/3xdRkwsA9VrDLapTt3Trp4P2HPxrCDpmhyjTwK4nHDAWx5DDC4u9f1atdYomVV6TGBxSugrWNVTUNwLpNr1xXUBL](https://solscan.io/tx/3xdRkwsA9VrDLapTt3Trp4P2HPxrCDpmhyjTwK4nHDAWx5DDC4u9f1atdYomVV6TGBxSugrWNVTUNwLpNr1xXUBL) ![](https://docs.solanamevbot.com/home/~gitbook/image?url=https%3A%2F%2F3811539071-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fx2rxpD03KDvMgJqIkdla%252Fuploads%252FdsvcFqXsmtqGtdj0MbeS%252FScreen%2520Shot%25202024-05-18%2520at%25201.20.22%2520AM.png%3Falt%3Dmedia%26token%3D88258248-d8bf-40b2-87ce-621b5240ce9a&width=768&dpr=4&quality=100&sign=e9bae2b7&sv=2) ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#wrap_sol_amount) WRAP\_SOL\_AMOUNT Default: 0 The amount of SOL to wrap into WSOL, only relevant when SOL is used as one of the base mint. By default the bot will wrap the largest amount in your trade size, but when flashloan is enabled you have to define how much you wrap. For all the trade with trade size less than this number, the bot will use the balance in the wallet, for larger ones the bot will use flashloan. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#blind_quote_strategy) BLIND\_QUOTE\_STRATEGY --------------------------------------------------------------------------------------------------------------------------------- Blind quote strategy is one way to find opportunities with the bot. You define a list of intermedium mints, the base mints you want to trade with(SOL/USDC/USDT), and what trade size you want to trade with. The bot will use your trade size to quote for all the intermedium mints, one buy and one sell, and find profitable routes by combining the buy and sell routes together. This strategy is a good start for beginner. It's easy to land as it can combine a lot of small opportunities into a big one, and generally less competitive. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_blind_quote_strategy) ENABLE\_BLIND\_QUOTE\_STRATEGY You have to specifically set this to true to enable the strategy ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#base_mints) BASE\_MINTS This is used to control what base mint you want to use for your trades and what trade size you want to use. Base mint means the token you are going to trade and profit with, currently only SOL/USDC/USDT is supported. The following setup means the bot will run with SOL and USDC. Note the unit is lamports here. So 1 SOL = 1,000,000,000 lamports. 1 USDC = 1,000,000 lamports. 1 USDT = 1,000,000 lamports. Using 1 SOL/2.5 SOL/5 SOL as trade size for SOL, and will only try to send the transaction when the opportunity provides at least 0.0005 SOL in profit. You can use the same mints for different TRADE\_SIZES/MIN\_QUOTE\_PROFIT pair to customize your strategy. Example: #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#process_delay) PROCESS\_DELAY Default: 1000 Unit in ms. The default value means the bot will wait for 1000ms then try again for the same token-trade size pair. Reducing this number will increase the chance to catch price change right away, but increase the read RPC load. #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#min_quote_profit) MIN\_QUOTE\_PROFIT MIN\_QUOTE\_PROFIT is the threshold for when to send a transaction for the potential profit, it does not guarantee that the actual profit land on chain will be that. The actual profit landed on chain can vary, and the bot will fail all transactions that ends up with a negative profit, and land all the ones with a profit, even if the profit is smaller than MIN\_QUOTE\_PROFIT. #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#min_simulated_profit) MIN\_SIMULATED\_PROFIT This config only works with you have both [`ENABLE_SIMULATION`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_simulation) and [`ENABLE_JITO_RPC`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_jito_rpc) . Instead of using the quote profit that generated by jup, which can be very inaccurate sometimes, this allows you to use the simulated profit which is the exactly amount you will get if you land it right at your simulation time. #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#skip_profit_check_for_quote) SKIP\_PROFIT\_CHECK\_FOR\_QUOTE When this is set to true, no profit check for quote will be used. If you have simulation on the bot will still use that and only keep the ones that passed simulation. Jupiter quote can be very inaccurate sometimes so combining this with with `ENABLE_SIMULATION` can find you more opportunities. This can also be used as part of [super spam strategy](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy#super-spam-strategy-with-only-1-or-2-mints) . #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#sending_cooldown) SENDING\_COOLDOWN If one opportunity is found and tx is sent out, wait at least this time(ms) before sending another one. #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#trade_sizes) TRADE\_SIZES Set in lamports on what sizes you want to trade with. Bot will quote jupiter api with the exact trade size you defined here periodically trying to find the most profitable routes. Example: #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#trade_range) TRADE\_RANGE If you don't want to manually define every trade size, you can utilize the trade range parameters. To utilize this you need to define 3 params: `TRADE_RANGE`, `TRADE_RANGE_COUNT`, `TRADE_RANGE_STRATEGY` **TRADE\_RANGE**: This defines the lower bound and higher bound for the range(inclusive). Bot will generate trade sizes only within this range. So make sure you have enough balance of the token for the upper bound. **TRADE\_RANGE\_COUNT**: This defines how many different trade size will be generated within the range. **TRADE\_RANGE\_STRATEGY**: Three values are supported right now: `linear` , `random` ,`exponential`. linear will generate trade sizes evenly within the range. random will generate a trade size randomly each time. exponential will generate trade size on exponential values. For example for range 10 - 1000, with count 5, it will generate trade size like this: \[10, 77, 315, 668, 1000\] Note: quote using random is slightly slower than quote using linear or fixed trade size. As for random two quotes are sent out one by one while for fixed size two quotes are sent out together. #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#route_types) ROUTE\_TYPES Default: 2hop Valid values: 2hop, 3hop By default, only 2hop routes are calculated. **2hop**: This means only routes like A -> B -> A will be considered. If you also set [`USE_DIRECT_ROUTE_ONLY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_direct_route_only) to false, there may be other mints between A->B and B->A. ![](https://docs.solanamevbot.com/home/~gitbook/image?url=https%3A%2F%2F3811539071-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fx2rxpD03KDvMgJqIkdla%252Fuploads%252FxQLHnnZK1lNp3Q7IAX5m%252FScreenshot%25202024-11-26%2520at%252012.48.24%25E2%2580%25AFAM.png%3Falt%3Dmedia%26token%3Df91bc053-6234-41ba-a525-4df22716763d&width=768&dpr=4&quality=100&sign=306625a9&sv=2) **3hop**: This means only route like A -> B -> C -> A will be considered. You need to set which additional mints you want to include in the middle in addition to all the intermedium mints. The most common use case for this is to quote for route with SOL and USDC, like SOL -> USDC -> X -> SOL. 3hop will generate similar results like setting [`USE_DIRECT_ROUTE_ONLY`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_direct_route_only) to false, but with much faster quote time. You need to also define [`THREE_HOP_MINTS`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#three_hop_mints) when using 3hop. ![](https://docs.solanamevbot.com/home/~gitbook/image?url=https%3A%2F%2F3811539071-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fx2rxpD03KDvMgJqIkdla%252Fuploads%252F9ELPyf3Uwlq115krj1MT%252FScreenshot%25202024-11-26%2520at%252012.47.40%25E2%2580%25AFAM.png%3Falt%3Dmedia%26token%3D0ab6f779-3800-4759-b5ef-9cbd55d4afa1&width=768&dpr=4&quality=100&sign=491f6b2b&sv=2) #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#three_hop_mints) THREE\_HOP\_MINTS A list of mints you want to use for your 3hop routes. The most common use case for this is to set USDC when you use SOL as base mint, or set SOL when you use USDC as base mint. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#config-override) Config override You can override JITO/SPAM configs for each base mint you define, this allows more complex strategy setups without the need to run a different instance of the bot. Here's an example of overriding `DYNAMIC_TIP_BP` for two base mints. The one without any override will use the global defined value, the one with override will use the override value. **Note**: Only JITO/SPAM configs support config override. [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#backrun_strategy) BACKRUN\_STRATEGY ------------------------------------------------------------------------------------------------------------------------ Backrun strategy is monitoring large trade onchain, and counter trade the ones found to find arbitrage opportunities. This is a more advanced strategy, and requires yellowstone to run. Backrun strategy works like the following: 1\. Bot will monitor the markets you defined in DEXES\_TO\_MONITOR, with all the intermedium mints you defined above 2\. If a trade cause the pool's price moved more than MIN\_PRICE\_IMPACT\_PCT, bot will try to create a trade to backrun it 3\. Bot will use the trade size you defined in TRADE\_CONFIGS, to randomly generate a size between MIN\_TRADE\_BP and MAX\_TRADE\_BP, based on the trade you are back running. Or you can just define a FIXED\_SIZE as your trade size here. 4\. Bot will quote the other size of the trade with jupiter, create a full arb trade tx 5\. If the tx has profit and it's higher than MIN\_QUOTE\_PROFIT, bot will send it out Example config: ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_backrun_strategy) ENABLE\_BACKRUN\_STRATEGY You have to specifically set this to true to enable the strategy ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#memo-1) MEMO You can add memo to all the tx generated from backrun strategy. This will override the BOT level memo. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#slot_memo) SLOT\_MEMO This will append the slot of the tx you backrun to your memo, you can compare this value to the slot number you tx landed on, to get a sense of how fast you land your tx. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#dexes_to_monitor) DEXES\_TO\_MONITOR Which dexes to monitor for your intermedium mints. Supported values are: ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#min_price_impact_pct) MIN\_PRICE\_IMPACT\_PCT This will filter out trades that only has a price impact over this number. This is useful as most of the small trades won't generate an arbitrage opportunity. ### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#base_mints-1) BASE\_MINTS This is used to control what base mint you want to use for your trades. Base mint means the token you are going to trade and profit with, currently only SOL/USDC is supported. #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#min_quote_profit-1) MIN\_QUOTE\_PROFIT MIN\_QUOTE\_PROFIT is the threshold for when to send a transaction for the potential profit, it does not guarantee that the actual profit land on chain will be that. The actual profit landed on chain can vary, and the bot will fail all transactions that ends up with a negative profit, and land all the ones with a profit, even if the profit is smaller than MIN\_QUOTE\_PROFIT. #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#min_simulated_profit-1) MIN\_SIMULATED\_PROFIT This config only works with you have both [`ENABLE_SIMULATION`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_simulation) and [`ENABLE_JITO_RPC`](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_jito_rpc) . Instead of using the quote profit that generated by jup, which can be very inaccurate sometimes, this allows you to use the simulated profit which is the exactly amount you will get if you land it right at your simulation time. #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#skip_profit_check_for_quote-1) SKIP\_PROFIT\_CHECK\_FOR\_QUOTE When this is set to true, no profit check for quote will be used. If you have simulation on the bot will still use that and only keep the ones that passed simulation. Jupiter quote can be very inaccurate sometimes so combining this with with `ENABLE_SIMULATION` can find you more opportunities. This can also be used as part of [super spam strategy](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-strategy#super-spam-strategy-with-only-1-or-2-mints) . #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#min_trade_size) MIN\_TRADE\_SIZE Unit in lamports. If the generated opportunity has a trade size smaller than this value, it will be skipped. #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#max_trade_size) MAX\_TRADE\_SIZE Unit in lamports. If the generated opportunity has a trade size bigger than this value, it will be capped at this value instead. #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#trade_configs) TRADE\_CONFIGS This is a list that contains two value `MIN_TRADE_BP` and `MAX_TRADE_BP`. Let's say you see a trade trading 100 SOL for WIF. And you want to counter trade it. Usually you don't want to trade back the full amount as it may not have the best price for you. This config allows you to set a range, the example below means the bot will randomly generate a trade size that is 20% - 30% of the original trade. In this case the generated backrun trade will has a trade size between 20 SOL and 30 SOL. Note this is a list, so you can define multiple range so that you can capture one trade with multiple tx with different trade sizes. #### [](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#route_types-1) ROUTE\_TYPES A list of route types you want to run the bot with. Currently the only supported type is `2hop`, which means a trade like A->B->A. More types will be added later. [PreviousGetting started](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/getting-started) [NextConfig examples](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations/config-examples) Last updated 8 months ago * [Example config.yaml](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#example-config.yaml) * [KEYS](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#keys) * [PRIVATE\_KEY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#private_key) * [HELIUS\_API\_KEY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#helius_api_key) * [CIRCULAR\_API\_KEY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#circular_api_key) * [YELLOWSTONE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#yellowstone) * [YELLOWSTONE\_URL](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#yellowstone_url) * [YELLOWSTONE\_XTOKEN](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#yellowstone_xtoken) * [JUPITER](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jupiter) * [DISABLE\_LOCAL\_JUPITER](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#disable_local_jupiter) * [INCLUDED\_DEXES](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#included_dexes) * [EXCLUDED\_DEXES](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#excluded_dexes) * [JUPITER\_RPC\_URL](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jupiter_rpc_url) * [JUPITER\_URL](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jupiter_url) * [JUP\_MAX\_ACCOUNTS](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jup_max_accounts) * [USE\_LOCAL\_MARKET\_CACHE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_local_market_cache) * [ENABLE\_CIRCULAR\_MARKET\_CACHE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_circular_market_cache) * [LOCAL\_JUPITER\_PORT](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#local_jupiter_port) * [MARKET\_MODE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#market_mode) * [TOTAL\_THREAD\_COUNT](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#total_thread_count) * [WEBSERVER\_THREAD\_COUNT](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#webserver_thread_count) * [UPDATE\_THREAD\_COUNT](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#update_thread_count) * [USE\_DIRECT\_ROUTE\_ONLY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_direct_route_only) * [JUPITER\_API\_KEY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jupiter_api_key) * [ADDITIONAL\_JUPITER\_URL\_PARAMS](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#additional_jupiter_url_params) * [SKIP\_JUPITER\_TOKEN\_LIST\_CHECK](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#skip_jupiter_token_list_check) * [RESTRICT\_INTERMEDIATE\_TOKENS](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#restrict_intermediate_tokens) * [INTERMEDIUM\_MINTS](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mints) * [INTERMEDIUM\_MINT\_COUNT\_FROM\_BIRDEYE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_count_from_birdeye) * [INTERMEDIUM\_MINT\_COUNT\_FROM\_BIRDEYE\_TRENDING](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_count_from_birdeye_trending) * [INTERMEDIUM\_MINT\_COUNT\_FROM\_JUPITER\_TRENDING](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_count_from_jupiter_trending) * [INTERMEDIUM\_MINT\_COUNT\_FROM\_GECKO](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_count_from_gecko) * [INTERMEDIUM\_MINT\_FROM\_FILE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_from_file) * [INTERMEDIUM\_MINT\_FROM\_FILES](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_from_files) * [INTERMEDIUM\_MINT\_LIST](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_list) * [INTERMEDIUM\_MINT\_EXCLUDE\_FROM\_FILE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_exclude_from_file) * [INTERMEDIUM\_MINT\_FROM\_ADDRESSES](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_from_addresses) * [INTERMEDIUM\_MINT\_FROM\_CIRCULAR](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_from_circular) * [INTERMEDIUM\_MINT\_FILTER](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#intermedium_mint_filter) * [BOT](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bot) * [AUTO\_RESTART](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#auto_restart) * [ENABLE\_SIMULATION](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_simulation) * [ENABLE\_JITO\_RPC](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_jito_rpc) * [ENCRYPT\_PRIVATE\_KEY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#encrypt_private_key) * [FIXED\_COMPUTE\_UNIT\_LIMIT](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fixed_compute_unit_limit) * [COMPUTE\_UNIT\_LIMIT\_MULTIPLIER](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#compute_unit_limit_multiplier) * [MAX\_COMPUTE\_TIME](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#max_compute_time) * [MAX\_WRAP\_SOL\_COMPUTE\_UNIT\_PRICE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#max_wrap_sol_compute_unit_price) * [MEMO](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#memo) * [PULL\_BLOCKHASH\_WITH\_YELLOWSTONE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#pull_blockhash_with_yellowstone) * [MIN\_SOL\_BALANCE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#min_sol_balance) * [RPC\_URL](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#rpc_url) * [SKIP\_SAME\_OPPORTUNITY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#skip_same_opportunity) * [PAY\_FEE\_WITH\_PROFIT](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#pay_fee_with_profit) * [JUPITER\_WORKER\_COUNT](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jupiter_worker_count) * [DOWNLOAD\_RPC\_URL](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#download_rpc_url) * [DOWNLOAD\_RPC\_RATE\_LIMIT\_PER\_SECOND](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#download_rpc_rate_limit_per_second) * [ENABLE\_FIXED\_SIZE\_OPTIMIZATION](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_fixed_size_optimization) * [JITO](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jito) * [ENABLE\_JITO](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_jito) * [ENABLE\_JITO\_GRPC](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_jito_grpc) * [BLOCK\_ENGINE\_URL](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#block_engine_url) * [JITO\_KEYPAIR](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jito_keypair) * [BLOCK\_ENGINES](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#block_engines) * [TIP\_STRATEGIES](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#tip_strategies) * [DYNAMIC\_TIP\_BP](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#dynamic_tip_bp) * [STATIC\_TIP\_BP](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#static_tip_bp) * [STATIC\_TIP\_BP\_LIST](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#static_tip_bp_list) * [FIXED\_TIP](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fixed_tip) * [FIXED\_TIP\_LIST](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fixed_tip_list) * [FIXED\_TIP\_RANGE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fixed_tip_range) * [FIXED\_TIP\_RANGE\_COUNT](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fixed_tip_range_count) * [FIXED\_TIP\_RANGE\_STRATEGY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fixed_tip_range_strategy) * [MAX\_TIP](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#max_tip) * [JITO\_UUID](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#jito_uuid) * [SHOW\_JITO\_LOGS](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#show_jito_logs) * [USE\_SEPARATE\_TIP\_ACCOUNT](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_separate_tip_account) * [USE\_DIFFERENT\_TX\_FOR\_BLOCK\_ENGINES](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_different_tx_for_block_engines) * [USE\_DIFFERENT\_TIP\_ACCOUNT\_FOR\_BLOCK\_ENGINES](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_different_tip_account_for_block_engines) * [ENABLE\_MULTIPLE\_IP\_ADDRESSES\_FOR\_JITO](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_multiple_ip_addresses_for_jito) * [START\_IP](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#start_ip) * [END\_IP](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#end_ip) * [IP\_LIST](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#ip_list) * [SPAM](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#spam) * [ENABLE\_SPAM](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_spam) * [COMPUTE\_UNIT\_PRICE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#compute_unit_price) * [MAX\_RETRIES](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#max_retries) * [PRIORITY\_FEE\_STRATEGY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#priority_fee_strategy) * [PRIORITY\_FEE\_UPDATE\_INTERVAL](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#priority_fee_update_interval) * [SEND\_RPC\_URLS](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#send_rpc_urls) * [PRIORITY\_FEE\_PERCENTILE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#priority_fee_percentile) * [SPAM\_FEE\_BPS](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#spam_fee_bps) * [MAX\_COMPUTE\_UNIT\_PRICE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#max_compute_unit_price) * [MIN\_COMPUTE\_UNIT\_PRICE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#min_compute_unit_price) * [SKIP\_PREFLIGHT](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#skip_preflight) * [SPAM\_RESTRICT\_LEVEL](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#spam_restrict_level) * [USE\_DIFFERENT\_TX\_FOR\_SENDERS](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#use_different_tx_for_senders) * [BLOXROUTE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute) * [ENABLE\_BLOXROUTE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_bloxroute) * [BLOXROUTE\_REGION](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_region) * [BLOXROUTE\_REGION\_LIST](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_region_list) * [BLOXROUTE\_KEY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_key) * [BLOXROUTE\_FEE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_fee) * [BLOXROUTE\_DYNAMIC\_FEE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_dynamic_fee) * [BLOXROUTE\_DYNAMIC\_FEE\_BP](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_dynamic_fee_bp) * [BLOXROUTE\_MAX\_DYNAMIC\_FEE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_max_dynamic_fee) * [BLOXROUTE\_JITO\_ONLY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#bloxroute_jito_only) * [NEXTBLOCK](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock) * [ENABLE\_NEXTBLOCK](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_nextblock) * [NEXTBLOCK\_REGION](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_region) * [NEXTBLOCK\_REGION\_LIST](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_region_list) * [NEXTBLOCK\_KEY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_key) * [NEXTBLOCK\_FEE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_fee) * [NEXTBLOCK\_DYNAMIC\_FEE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_dynamic_fee) * [NEXTBLOCK\_DYNAMIC\_FEE\_BP](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_dynamic_fee_bp) * [NEXTBLOCK\_MAX\_DYNAMIC\_FEE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_max_dynamic_fee) * [NEXTBLOCK\_SHOW\_SENDING\_ERROR](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_show_sending_error) * [NEXTBLOCK\_JITO\_ONLY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#nextblock_jito_only) * [TEMPORAL](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal) * [ENABLE\_TEMPORAL](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_temporal) * [TEMPORAL\_REGION](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_region) * [TEMPORAL\_REGION\_LIST](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_region_list) * [TEMPORAL\_KEY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_key) * [TEMPORAL\_FEE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_fee) * [TEMPORAL\_DYNAMIC\_FEE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_dynamic_fee) * [TEMPORAL\_DYNAMIC\_FEE\_BP](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_dynamic_fee_bp) * [TEMPORAL\_MAX\_DYNAMIC\_FEE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_max_dynamic_fee) * [TEMPORAL\_SHOW\_SENDING\_ERROR](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#temporal_show_sending_error) * [FAST](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fast) * [ENABLE\_FAST](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_fast) * [FAST\_FEE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fast_fee) * [FAST\_DYNAMIC\_FEE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fast_dynamic_fee) * [FAST\_DYNAMIC\_FEE\_BP](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fast_dynamic_fee_bp) * [FAST\_MAX\_DYNAMIC\_FEE](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fast_max_dynamic_fee) * [FAST\_SHOW\_SENDING\_ERROR](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fast_show_sending_error) * [FAST\_JITO\_ONLY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#fast_jito_only) * [LOGGING](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#logging) * [DEBUG](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#debug) * [ENABLE\_LANDING\_LOG](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_landing_log) * [ENABLE\_SENDING\_LOG](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_sending_log) * [HIDE\_ERROR](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#hide_error) * [FLASHLOAN](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#flashloan) * [ENABLE\_FLASHLOAN](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_flashloan) * [FLASHLOAN\_PROVIDER](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#flashloan_provider) * [WRAP\_SOL\_AMOUNT](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#wrap_sol_amount) * [BLIND\_QUOTE\_STRATEGY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#blind_quote_strategy) * [ENABLE\_BLIND\_QUOTE\_STRATEGY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_blind_quote_strategy) * [BASE\_MINTS](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#base_mints) * [Config override](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#config-override) * [BACKRUN\_STRATEGY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#backrun_strategy) * [ENABLE\_BACKRUN\_STRATEGY](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#enable_backrun_strategy) * [MEMO](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#memo-1) * [SLOT\_MEMO](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#slot_memo) * [DEXES\_TO\_MONITOR](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#dexes_to_monitor) * [MIN\_PRICE\_IMPACT\_PCT](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#min_price_impact_pct) * [BASE\_MINTS](https://docs.solanamevbot.com/home/deprecated/jupiter-bot/bot-configurations#base_mints-1) Copy ADDITIONAL_JUPITER_URL_PARAMS = 'api-key=12345678' Copy [\ "So11111111111111111111111111111111111111112",\ "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",\ "fCuw5ppJ9aZYzjm8EsT2fHwxV1h5JwUfqXM44iX3Pzb"\ ] Copy INTERMEDIUM_MINT_FROM_FILES: - mint1.json - mint2.json - mint3.json Copy INTERMEDIUM_MINT_LIST: - EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v - Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB Copy [\ "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",\ "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB"\ ] Copy INTERMEDIUM_MINT_FROM_ADDRESSES: MAX_MINT_COUNT: 50 # 0 is no maximum, ADDRESSES: - ADDRESS: 'benRLpbWCL8P8t51ufYt522419hGF5zif3CqgWGbEUm' TX_COUNT_PER_ADDRESS: 100 # Number of latest transactions to check on start SUCCESSFUL_ONLY: false # Only consider successful transactions MAX_MINT_COUNT: 50 # 0 is no maximum - ADDRESS: 'bobCPc5nqVoX7r8gKzCMPLrKjFidjnSCrAdcYGCH2Ye' TX_COUNT_PER_ADDRESS: 100 SUCCESSFUL_ONLY: false MAX_MINT_COUNT: 50 # 0 is no maximum Copy INTERMEDIUM_MINT_FROM_CIRCULAR: MAX_TOKENS_LIST: 5 # Maximum number of tokens to fetch from Circular API MAX_TIME_RANGE: 900 # Maximum time range in seconds for the data to be fetched from Circular API TOKEN: 'So11111111111111111111111111111111111111112' # Base Token to fetch from Circular API EXCLUDE_TOKENS: # List of tokens to exclude from the fetched data, can be empty - 'So11111111111111111111111111111111111111112' PROVIDER: '' # Optional, Filter by provider list ("JITO", "FAST", "TEMPORAL", "BLOX", "NEXTBLOCK", "NO_PROVIDER") Copy INTERMEDIUM_MINT_FILTER: MAX_MINT_COUNT: 10 # Maximum number of mints to keep FILTER_METHOD: 'random' # Filter method, only 'random' is supported for now Copy STATIC_TIP_BP_LIST: - 5000 - 7000 - 9000 Copy FIXED_TIP_LIST: - 10_000_000 - 100_000_000 - 1_000_000_000 Copy FIXED_TIP_RANGE: FROM: 100_000 TO: 10_000_000_000 FIXED_TIP_RANGE_COUNT: 5 FIXED_TIP_RANGE_STRATEGY: linear Copy START_IP: '1.1.1.1' Copy END_IP: '1.1.1.1' Copy IP_LIST: - 1.1.1.1 - 2.2.2.2 Copy SEND_RPC_URLS: - https://api.mainnet-beta.solana.com - https://api2.mainnet-beta.solana.com Copy "min": 0, "low": 10000, "medium": 60082, "high": 1230000, "veryHigh": 5000000 Copy SPAM: ... PRIORITY_FEE_PERCENTILE: 50 # Priority fee percentile for priority fee transactions. Need Helius API key. MAX_COMPUTE_UNIT_PRICE: 100_000 # Maximum priority fee in lamports Copy SPAM: MAX_COMPUTE_UNIT_PRICE: 100_000 # Maximum priority fee in lamports SPAM_FEE_BPS: 500 # This allows you to set your gas fee to be a fixed percentage of the projected gain. Copy BLOXROUTE_REGION_LIST: - ny - uk Copy NEXTBLOCK_REGION_LIST: - ny - fra Copy TEMPORAL_REGION_LIST: - pit1 - ams1 Copy BLIND_QUOTE_STRATEGY: ENABLE_BLIND_QUOTE_STRATEGY: true # Enable blind quote strategy Copy BLIND_QUOTE_STRATEGY: ENABLE_BLIND_QUOTE_STRATEGY: true # Enable blind quote strategy BASE_MINTS: - MINT: So11111111111111111111111111111111111111112 # Wrapped SOL TRADE_SIZES: - 1_000_000_000 - 2_500_000_000 - 5_000_000_000 MIN_QUOTE_PROFIT: 500_000 # Minimum profit in lamports PROCESS_DELAY: 1000 SENDING_COOLDOWN: 0 # If one opportunity is found and tx is sent out, wait at least this time(ms) before sending another one. Copy BASE_MINTS: - MINT: So11111111111111111111111111111111111111112 # Wrapped SOL TRADE_SIZES: - 1_000_000 - 10_000_000 TRADE_RANGE_COUNT: 5 # Number of trade sizes within the range TRADE_RANGE_STRATEGY: 'linear' # Strategy for distributing trade sizes MIN_QUOTE_PROFIT: 5000 # Minimum profit in lamports PROCESS_DELAY: 1000 Copy BASE_MINTS: - MINT: So11111111111111111111111111111111111111112 # Wrapped SOL TRADE_RANGE: FROM: 1_000_000_000 # 1 SOL TO: 10_000_000_000 # 10 SOL TRADE_RANGE_COUNT: 5 # Number of trade sizes within the range TRADE_RANGE_STRATEGY: 'linear' # Strategy for distributing trade sizes MIN_QUOTE_PROFIT: 5000 # Minimum profit in lamports PROCESS_DELAY: 1000 Copy BASE_MINTS: - MINT: So11111111111111111111111111111111111111112 # Wrapped SOL TRADE_RANGE: FROM: 1_000_000_000 # 1 SOL TO: 10_000_000_000 # 10 SOL TRADE_RANGE_COUNT: 5 # Number of trade sizes within the range TRADE_RANGE_STRATEGY: 'linear' # Strategy for distributing trade sizes MIN_QUOTE_PROFIT: 5000 # Minimum profit in lamports PROCESS_DELAY: 1000 ROUTE_TYPES: - 2hop - 3hop THREE_HOP_MINTS: - EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v Copy JITO: DYNAMIC_TIP_BP: 5000 BASE_MINTS: - MINT: So11111111111111111111111111111111111111112 # Wrapped SOL TRADE_RANGE: FROM: 1_000_000_000 TO: 2_000_000_000 TRADE_RANGE_COUNT: 5 # Number of trade sizes within the range TRADE_RANGE_STRATEGY: 'linear' # Strategy for distributing trade sizes MIN_QUOTE_PROFIT: 100_000 - MINT: So11111111111111111111111111111111111111112 # Wrapped SOL TRADE_RANGE: FROM: 1_000_000_000 TO: 2_000_000_000 TRADE_RANGE_COUNT: 5 # Number of trade sizes within the range TRADE_RANGE_STRATEGY: 'linear' # Strategy for distributing trade sizes MIN_QUOTE_PROFIT: 100_000 JITO: DYNAMIC_TIP_BP: 9000 - MINT: So11111111111111111111111111111111111111112 # Wrapped SOL TRADE_RANGE: FROM: 5_000_000_000 TO: 10_000_000_000 TRADE_RANGE_COUNT: 5 # Number of trade sizes within the range TRADE_RANGE_STRATEGY: 'linear' # Strategy for distributing trade sizes MIN_QUOTE_PROFIT: 100_000 JITO: DYNAMIC_TIP_BP: 8000 Copy BACKRUN_STRATEGY: ENABLE_BACKRUN_STRATEGY: true # Enable backrun strategy MEMO: '' # Memo override for the backrun strategy SLOT_MEMO: true # Add the backrun tx's slot to the memo, useful to see how far you landed your backrun tx. DEXES_TO_MONITOR: # List of DEXes to monitor. Valid values: Raydium, Whirlpool, RaydiumCLMM, Meteora, MeteoraDLMM - Raydium - Whirlpool - RaydiumCLMM - Meteora - MeteoraDLMM - LifinityV2 - SolFi MIN_PRICE_IMPACT_PCT: 0.1 # Minimum price impact in percentage, for the pool you are monitoring. Bot will only backrun trades that caused the price to move more than this percentage. BASE_MINTS: # List of base mints to use for the backrun. Currently only SOL and USDC are supported. - MINT: So11111111111111111111111111111111111111112 MIN_QUOTE_PROFIT: 100_000 # Minimum profit in lamports for the quote MIN_SIMULATED_PROFIT: 100_000 # Minimum profit in lamports for the simulated profit SKIP_PROFIT_CHECK_FOR_QUOTE: false # Skip profit check for the quote, jup quote can be very inaccurate sometimes, you can use this together with simulation to get the actual profit MIN_TRADE_SIZE: 500_000_000 # Minimum trade size in lamports, if the generated trade size is less than this bot will skip the trade MAX_TRADE_SIZE: 150_000_000_000 # Maximum trade size in lamports, if the generated trade size is more than this bot will cap it at this size TRADE_CONFIGS: # List of trade configs to use for the backrun. You can define multiple configs to backrun the same tx # Bot will randomly pick a trade size between MIN_TRADE_BP and MAX_TRADE_BP, based on the trade you are backrunning # You can define multiple configs, and bot will create different txs to backrun the same trade - MIN_TRADE_BP: 2000 # Min trade size in basis points MAX_TRADE_BP: 2000 # Max trade size in basis points # Or you can define FIXED_SIZE - FIXED_SIZE: 1_000_000_000 ROUTE_TYPES: # Currently only 2hop is supported - 2hop - MINT: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v # USDC MIN_QUOTE_PROFIT: 100_000 # Minimum profit in lamports for the quote MIN_SIMULATED_PROFIT: 100_000 # Minimum profit in lamports for the simulated profit SKIP_PROFIT_CHECK_FOR_QUOTE: false # Skip profit check for the quote, jup quote can be very inaccurate sometimes, you can use this together with simulation to get the actual profit MIN_TRADE_SIZE: 500_000_000 # Minimum trade size in lamports, if the generated trade size is less than this bot will skip the trade MAX_TRADE_SIZE: 150_000_000_000 # Maximum trade size in lamports, if the generated trade size is more than this bot will cap it at this size TRADE_CONFIGS: # List of trade configs to use for the backrun. You can define multiple configs to backrun the same tx # Bot will randomly pick a trade size between MIN_TRADE_BP and MAX_TRADE_BP, based on the trade you are backrunning # You can define multiple configs, and bot will create different txs to backrun the same trade - MIN_TRADE_BP: 2000 # Min trade size in basis points MAX_TRADE_BP: 2000 # Max trade size in basis points # Or you can define FIXED_SIZE - FIXED_SIZE: 1_000_000_000 ROUTE_TYPES: # Currently only 2hop is supported - 2hop Copy BACKRUN_STRATEGY: ENABLE_BACKRUN_STRATEGY: false # Enable backrun strategy Copy - Raydium - Whirlpool - RaydiumCLMM - Meteora - MeteoraDLMM - LifinityV2 - SolFi Copy TRADE_CONFIGS: # List of trade configs to use for the backrun. You can define multiple configs to backrun the same tx # Bot will randomly pick a trade size between MIN_TRADE_BP and MAX_TRADE_BP, based on the trade you are backrunning # You can define multiple configs, and bot will create different txs to backrun the same trade - MIN_TRADE_BP: 2000 # Min trade size in basis points MAX_TRADE_BP: 3000 # Max trade size in basis points ---