Skip to content

Releases: AlexRubik/rude-bot-solana

v1.0.0-alpha - Staked Helius Transactions!

31 May 20:01
26bc19e
Compare
Choose a tag to compare

Any paid Helius plan can now use their staked connection to send heavily prioritized transactions.

Newly required files in this zip (don't try to put the new executable in your older version directories).

Using a staked connection does not improve execution speed!
It only makes your transaction more likely to be included in a block (fail or success)!
Helius requires expensive priority fees (10k lamports minimum) for this feature which the bot calculates automatically (read below).
If you don't have an optimal setup, you can lose a lot due to these high priority fees.
If you are not targeting large profit or large trade sizes, you can lose a lot due to these high priority fees.

  • Put your Helius API key value in the new .env variable: HELIUS_API_KEY=X

  • In baseConfig.json you now have 2 new properties:
    "useHeliusTxn": true,
    "heliusPriorityLevel": "MEDIUM"

  • When useHeliusTxn = true, if the bot uses a helius rpc in any way for sending txns, it will send it with priority to their staked connection.

  • heliusPriorityLevel can be "LOW" , "MEDIUM", or "HIGH" . This determines the size of helius txn priority fee. They suggest MEDIUM.

  • A Helius transaction will always use more than 10k lamports priority fee

  • If you are using the spam .env variables, they will work as normal. They won't use the large priority fee even if you have useHeliusTxn = true

  • useHeliusTxn = true does not make the worker send only Helius transactions when using spam feature. If you are spamming, the worker will send normal transactions to your non Helius rpcs with the min/maxFeeLamports as the priority fee

  • Try using MAX_RETRIES=0 (in .env) and duplicating RPCs in your rpcs.json

  • A worker with jitoProfitPerc > 0 will still only send jito bundles. The new Helius properties/variables don't affect that. Bundles are prioritized in this condition.

Get started! https://rude-bot-org.gitbook.io/rude-solana-arbitrage-bot/bot-setup-instructions

Official Website: https://www.solanaarbitrage.com/

v0.2.10-alpha - UNSTABLE Auto Jito Tip Pre-Release

15 May 05:18
3e3697b
Compare
Choose a tag to compare

New (SOL/USDC/USDT ONLY) baseConfig property: "jitoProfitPerc": 50

Percent of profit to send as a jito bundle tip. E.g., if the value is set to 50 then every profitable transaction will send 50% of the profit as a jito tip in SOL. Jito tips are only in native SOL so make sure you have enough SOL to use this.

  • This only works with SOL/USDC/USDT workers. Keep this value = 0 otherwise.

  • When this value = 0 , normal transactions will be used. Not a jito bundle.

  • When this is > 0 the worker will only send your transactions in a jito bundle.

  • Use the new ledger_program.json

  • Removed bundleTipLamports from baseConfig.json

  • Added informative memo to bundle transactions and transactions sent when
    SPAM_RPCS_ENABLED=true
    SPAM_RPCS_UNIQUE_TXNS=true

Official Links: https://solanaarbitrage.com

v0.2.9-alpha - Unique Txns and Multiple Jito Block Engines

03 May 03:07
467a671
Compare
Choose a tag to compare

New boolean .env variable: SPAM_RPCS_UNIQUE_TXNS

When SPAM_RPCS_ENABLED=true and SPAM_RPCS_UNIQUE_TXNS=true, the bot will send the same transaction but with different transaction signatures to each RPC in rpcs.json

.env variable BLOCK_ENGINE_URL: you can now send your bundle to multiple block engine urls separated by commas

For example,
BLOCK_ENGINE_URL=ny.mainnet.block-engine.jito.wtf,frankfurt.mainnet.block-engine.jito.wtf

https://www.solanaarbitrage.com/
https://twitter.com/solanarbitrage

v0.2.8-alpha - New Config, Auto Updates, Fee Reduction

27 Apr 17:39
ce33cdb
Compare
Choose a tag to compare

New .env variable: UPDATE_INTERVAL_MINUTES

  • Interval for updating your createAtaBlacklist and pulling your rpcs.json and includeMints json files
  • So now you don't have to restart the bot to update the blacklist and you don't have to restart the bot if you change your rpcs.json file
  • You can change your rpcs.json and includeMints files while the bot is running and the changes will take place at the interval

New baseConfig object props: workerUniqueId and includeMintsJsonPath

  • workerUniqueId: name your workers
  • includeMintsJsonPath: you can now have a unique includeMints json for each worker

Fee Reduction: Fee is now 10% - 25%

https://www.solanaarbitrage.com/

v0.2.7-alpha - 1st iteration Jito Bundles: Fixed Tip, Commitment

18 Apr 06:41
c675c3d
Compare
Choose a tag to compare

WARNING: Profit checking smart contract has not been modified to account for the Jito Bundle Tip. This version allows you to set a custom jito bundle tip.

  • this version is strictly for testing / proof of concept

  • new .env variable: BLOCK_ENGINE_URL
    All possible values: amsterdam.mainnet.block-engine.jito.wtf | frankfurt.mainnet.block-engine.jito.wtf | ny.mainnet.block-engine.jito.wtf | tokyo.mainnet.block-engine.jito.wtf

  • new baseConfig.json object property: bundleTipLamports
    Setting this to 0 will disable bundles and the transaction will be sent normally, witthout jito.

You will have to add these to your .env file if you want to use them, I'm not going to include them in the default file because I don't want to confuse people:

  • new .env variable: NORMAL_COMMITMENT
    default is processed

  • new .env variable: BUNDLE_COMMITMENT
    default is confirmed

READ ABOUT COMMITMENT HERE: https://solana.com/docs/rpc#configuring-state-commitment

v0.2.6-alpha - Minor performance improvement

16 Apr 04:02
c675c3d
Compare
Choose a tag to compare
  • Changed some logic to slightly improve performance for users on the budget setup: Setup Video
  • Removed the rawTx log. You can turn it back on by putting this in the .env: DEBUG=true
  • Cleaned up the auto populate createAtaBlacklist.json
  • For those that want to play with the slippage values, you can add these to your .env:
    MIN_SLIPPAGE_BPS=2000
    MAX_SLIPPAGE_BPS=9000

The values are basis points (integers). If you don't have these variables in your .env then the values above are assigned by default.

New Budget Friendly Setup Video
Documentation

v0.2.5-alpha - Auto populate createAtaBlacklist.json

11 Apr 04:24
c675c3d
Compare
Choose a tag to compare

Minimal convenience update

  • New .env variable: AUTO_CREATE_ATA_BLACKLIST
  • When true, the bot will get all your token mints on startup and put them in createAtaBlacklist.json
  • The output is a bit buggy but if you see "Successfully wrote mint addresses to createAtaBlacklist.json" then it probably worked. You can also check the file to see if it worked.
  • If you have a wSOL account, please remember to set WRAP_UNWRAP_SOL_ENABLED=false

v0.2.4-alpha - Fee Reduction, Dynamic Priority Fee, RPC Spam, WRAP_UNWRAP_SOL_ENABLED

01 Apr 17:06
c675c3d
Compare
Choose a tag to compare
  • Bot Fee is now 10% - 33% of profit, previously 16% - 50%

Dynamic Priority Fee

  • Based on potential profit scaled for 10% as max
  • So if the potential profit for an arb is >= 10% then the maxFeeLamports will be used. Let me know if you want a config value for this
 "minFeeLamports": 1000,
 "maxFeeLamports": 3000

RPC Spamming

  • New variables in .env: SPAM_RPCS_ENABLED, SEND_TXN_RPC_URL
  • New file: rpcs.json
  • Put all the RPC URLs you want to spam each transaction to (once for each RPC URL) in the rpcs.json file and set SPAM_RPCS_ENABLED=true in the .env
  • When the spam env is false, the bot will use another new env variable, SEND_TXN_RPC_URL, to send transactions
  • RPC_URL is used for all other non send txn interactions with the blockchain

WRAP_UNWRAP_SOL_ENABLED

  • In all past versions, this has been defaulted to true
  • When setting this to false the bot will assume you have a WSOL account (the token account for SOL). We'll see how to open a WSOL account below
  • WARNING: all past versions of the bot will close a WSOL account on a successful transaction. So if you are running multiple versions, you will have conflicts when this variable = false

Open and fund a WSOL account

  • Install and configure the Solana CLI
  • spl-token create-account So11111111111111111111111111111111111111112
  • Send SOL to your new WSOL token account
  • spl-token sync-native

Docs: https://rude-bot-org.gitbook.io/rude-solana-arbitrage-bot

v0.2.3-alpha - Worker threads!

25 Mar 00:18
9161e82
Compare
Choose a tag to compare
  • ADD: WORKER_THREADS_ENABLED .env variable! Spawns a worker thread for each baseConfig object that will run in parallel to each other. In theory, this should significantly improve performance for everyone with non rate limited connections
  • MODIFICATION: priority fee and profit bps threshold for simulation moved to baseConfig so now you can have unique values for those variables instead of them applying to all baseConfig objects like they were doing in .env
  • TIP: you can have multiple baseConfig objects using the same mint. If you want to capture trade sizes for USDC from 1 - 100, try creating 4 baseConfig objects with min max ranges of 1-25, 26-50, 51-75, 76-100
  • ADD: createAtaBlacklist.json; you can add mints to this file for the tokens you already have token accounts for so that the bot doesn't add an instruction to try to create a new token account. Less instructions is good

Documentation: https://rude-bot-org.gitbook.io/rude-solana-arbitrage-bot

v0.2.2-alpha

18 Mar 23:21
4782187
Compare
Choose a tag to compare
  • Windows users can use WSL. Refer to the bottom of these release notes.
  • Added maxAccounts value in baseConfig. Read about maxAccounts here
  • maxAccounts is a param for each quote request and each arb requests 2 quotes. Transactions cannot have more than 64 accounts, so don't make the maxAccounts value higher than 32. I use 28 for this value and all previous versions of rude bot are defaulted to 28.
  • Added MAX_RETRIES to .env. Read about max retries here
  • nohup BUG! There is a known bug that causes the bot to stop after some arbitrary time when using nohup. A temp fix would be to use systemctl to create a service that will restart the bot every 2 hours

Documentation: https://rude-bot-org.gitbook.io/rude-solana-arbitrage-bot

image