LimitSwap Bot setup guide πŸ› οΈ

1/ First steps

Prerequisites :

  • Read the Readme on GitHub for a step-by-step tutorial on how to install the bot

Our bot works with 2 json files :

  • settings.json

  • tokens.json

2/ Configure your settings

You need first to configure your account.

1/ Run the bot first, and enter your wallet and Private Key : bot will ask you to enter a password so as to encrypt your private keys.

2/ Open settings.json file and set your Exchange / Node values:

[
{
// -----------  WALLETS PARAMETERS ------------------------------------------------------------------------------
"LIMITWALLETPRIVATEKEY": "do not enter it manually, open the bot : it will encrypt it",
"LIMITWALLETADDRESS": "wallet address where you hold your LIMIT tokens",
"WALLETADDRESS": "wallet address you want to trade on : can be different from LIMIT wallet",
"PRIVATEKEY": "do not enter it manually, open the bot : it will encrypt it",
"WALLETADDRESS2": "null",
"PRIVATEKEY2": "null",
"WALLETADDRESS3": "null",
"PRIVATEKEY3": "null",
"WALLETADDRESS4": "null",
"PRIVATEKEY4": "null",
"WALLETADDRESS5": "null",
"PRIVATEKEY5": "null",

// -----------  NODE PARAMETERS ------------------------------------------------------------------------------
"USECUSTOMNODE": "false",
"CUSTOMNODE": "false", // put your own node here if you want and set USECUSTOMNODE = true
"UNLIMITED_SPEED": "false", // put 'true' only if you use a Private Node, because it will make more than 1000 price checks/s : you would be banned quickly from public node
"EXCHANGE": "pancakeswap",
"EXCHANGEVERSION": "2", // only for Pancakeswap

// -----------  TRADING PARAMETERS ------------------------------------------------------------------------------
"PREAPPROVE": "true", // team recommends to set it to true, it's important
"UNLIMITEDSLIPPAGE": "false", // be careful, this parameter is dangerous :) use it for degen snipings only
"PASSWORD_ON_CHANGE": "false", // set this to true if you want the bot to ask for your PK password if you update tokens.json in real time
"VERBOSE_PRICING": "true", // set to false if you want a new price line to appear only when price change
"SLOW_MODE": "false", // use this if you want the bot to make only 1 price check every 0.5s

"START_BUY_AFTER_TIMESTAMP": "not used", // Example : 1644150026. Bot will not start to BUY until time reach this timestamp. Use https://www.unixtimestamp.com/ to define value
"START_SELL_AFTER_TIMESTAMP": "not used", // Example : 1644150326. Bot will not start to SELL until time reach this timestamp. Use https://www.unixtimestamp.com/ to define value

// -----------  APPRISE PARAMETERS ------------------------------------------------------------------------------
"ENABLE_APPRISE_NOTIFICATIONS": "true", // use this if you want to receive notifications with APPRISE API
"APPRISE_PARAMETERS": ["macosx://", "windows://"], // you can enter new parameters. Respect the format. Check https://github.com/caronc/apprise

// -----------  TELEGRAM PARAMETERS ------------------------------------------------------------------------------
"AUTOMATICALLY_CHOOSE_LIQUIDITY_PAIR": "true",       // if 'true', bot will scan all liquidity pair, to choose the best one
"SESSION_NAME": "Enter a random name here",    // Enter here your session name. You can put any name.
"SESSION_API": "12345678",    // Go to https://my.telegram.org/auth?to=apps  , register, create an app, and you'll get an API and an API Hash (next parameter)
"SESSION_API_HASH": "azertyuioqsdfghjk1234567890",   // Go to https://my.telegram.org/auth?to=apps
"CHANNEL_NAMES": ["LimitSwap - WE WILL NEVER DM YOU FIRST", "Channel name number 2"],       // Channel names that you want to track. You need to be on the Channel with your Telegram Account to see them.
"TOKENS_BLACKLIST": ["0xe9e7cea3dedca5984780bafc599bd69add087d56", "0x55d398326f99059ff775485246999027b3197955"]       // You can add manually some tokens to blacklist
}
]

Since 4.0.0, LimitSwap can trade with 5 wallets at the same time, if you use MULTIPLEBUYS option

  • EXCHANGE : enter the exchange you want to use. Available values:

    • Uniswap

    • Pancakeswap

    • Sushiswapbsc

    • Sushiswapavax

    • Sushiswapeth

    • Sushiswapftm

    • Sushiswapmatic

    • Biswap

    • Pinkswap

    • Babyswap

    • Bakeryswap

    • Orbitalswap

    • Spiritswap

    • Spookyswap

    • Protofi

    • ApeSwap

    • Quickswap

    • Polygon-apeswap

    • Waultswap

    • KuSwap

    • KoffeeSwap

    • Pangolin

    • Traderjoe

    • Tethys

    • Cronos-meerkat

    • Cronos-vvs

    • Cronos-crona

    • Milkyswap

    • Wagyuswap

    • Viperswap

    • Solarbeam

    • Dogeswap

    • Yodeswap

    • Fraxswap

    • Hebeswap

    • ... and also Pancakeswaptestnet and Uniswaptestnet, if you want to use the bot on testnets πŸ˜‡

TUTORIAL : HOW TO TEST THE BOT ON PANCAKE TESTNET

1/ Enter "pancakeswaptestnet" in settings.json

2/ Ask 1 testnet BNB here : https://testnet.binance.org/faucet-smart

3/ Add BNB testnet to your metamask

4/ Use this website to make a swap on testnet : https://pancake.kiemtienonline360.com/

5/ Go here to find the contract address of the token you just sniped on testnet : https://testnet.bscscan.com/

6/ Enter this contract address in your tokens.json

7/ Snipe :)

HOW TO FIND TOKENS on BSC testnet ?

You can find many transactions on Pancake testnet here : https://testnet.bscscan.com/address/0xd99d1c33f9fc3444f8101754abc46c52416550d1

-----------------------------------------------

TUTORIAL : HOW TO TEST THE BOT ON ETH RINKEBY TESTNET

1/ Enter "uniswaptestnet" in settings.json

2/ Ask 0.1 testnet ETH here : https://faucets.chain.link/rinkeby

3/ Add ETH testnet Rinkeby to your metamask

5/ HOW TO FIND TOKENS ? go here to find contract address of tokens : https://rinkeby.etherscan.io/address/0x7a250d5630b4cf539739df2c5dacb4c659f2488d

6/ Enter contract address in your tokens.json

7/ Important : use this in your tokens.json

"GAS": "BOOST",

"BOOSTPERCENT": "150",

8/ Snipe :)

9/ See results here : https://rinkeby.etherscan.io/

  • EXCHANGEVERSION Only available for Pancakeswap. Select "1" or "2".

    If you're not using Pancake, just leave it like this, bot won't take it into account.

  • LIMITWALLETPRIVATEKEY / PRIVATEKEY You need to enter here the Private key (and not the 12 words seed phrase) of the wallets you want to use. Read this article to learn how to export your private key from Metamask.

Don't worry, your private keys are encrypted with a password πŸ”

You can use same wallet or different wallets, for holding LIMIT tokens and trading. It's as you preferπŸ˜‡

  • USECUSTOMNODE Set it to "true" if you want to use a custom node.

  • CUSTOMNODE If you want to use a custom node, enter here your node's address in http, wss, or IPC Example: https://bsc-dataseed4.ninicoin.io or wss://bsc-ws-node.nariox.org:443

Go read this page if you want tips on nodes / custom nodes πŸ•΅οΈ

  • PREAPPROVE Tells the bot to preapprove tokens on startup or not Available values : - "false" --> bot will NOT approve token - "true" --> bot will approve AFTER BUY IS MADE - "instant" --> bot will approve AT BOT STARTUP

If you want to use the bot to SELL ONLY --> use PREAPPROVE = "instant"

  • ENCRYPTPRIVATEKEYS Will be filled automatically when you start the bot for the first time

  • UNLIMITEDSLIPPAGE Use this parameter if you want the bot to bypass completely the slippage setting and buy at any slippage, to avoid the "INSUFFICIENT_AMOUNT" Error If you select UNLIMITEDSLIPPAGE= true, bot won't take into account SLIPPAGE parameter.

Use UNLIMITED SLIPPAGE WITH CAUTION THIS SHOULD BE USED FOR DEGEN SNIPES ONLY AND CAN RESULT IN LOSS OF FUNDS IF USED INCORRECTLY!!!

  • PASSWORD_ON_CHANGE Activate this option if you want the bot to ask your private key's password again when you update tokens.json (useful if you're afraid someone could change it while the bot is running)

  • VERBOSE_PRICING Default setting is "true", but if you set it to "false", bot will only show lines on the screen if the price is updated, like this :

  • SLOW_MODE

    A user contacted me because he was running the bot 24/24 on the default node, and his IP got temporarily banned because he made too many calls. Indeed, on default RPC nodes, there is a rate limit (example : https://docs.binance.org/smart-chain/developer/rpc.html#rate-limit) --> We created a SLOW_MODE parameter for this. Use it if you let the bot run all night on default node, if you just need to do Limit orders.

    2 options :

    • SLOW_MODE : true --> price check every 0.5s

    • SLOW_MODE : super_slow --> price check every 3s

  • ENABLE_APPRISE_NOTIFICATIONS / APPRISE_PARAMETERS You can now receive real-time notifications when LimitSwap made a BUY or a SELL order What is Apprise ? It's an API who allows you to get Push notifications on your Phone / computer / Telegram / Discord / SMS... basically everywhere ! Check : https://github.com/caronc/apprise

    How to use it 1/ Check Apprise Github for documentation : https://github.com/caronc/apprise#popular-notification-services 2/ Configure your settings.json : - "ENABLE_APPRISE_NOTIFICATIONS": "true", - "APPRISE_PARAMETERS": [put your parameters here : you can put several notifications at the same time]

    Example

    • you are using a Windows computer and want to receive a Windows notification

    • you have registered on PushSafer so as to receive a notification on your phone. The private key they gave you is eFhoOW0gh0vwvOCqDPlB

    --> enter this in your settings.json : - "ENABLE_APPRISE_NOTIFICATIONS": "true", - "APPRISE_PARAMETERS": ["windows://", "psafers://eFhoOW0gh0vwvOCqDPlB"]

3/ Configure your tokens

Open tokens.json to configure the tokens and the orders that your bot will create. Here's an example:

[
  {
    "ENABLED": "true",
    "SELECT_MODE": "limitswap", // available values : limitswap / buy_the_dip / trailing_stop / limitswap+trailing_stop / ping_pong / limitswap+ping_pong / snipe_on_pinksale / pinksale / telegram / telegram+trailing_stop / telegram+ping-pong
    "SYMBOL": "CAKE",
    "ADDRESS": "0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82",

// -----------  BUY / SELL  PARAMETERS ---------------------------------------------------------------------------------
    "KIND_OF_SWAP": "base",            // enter "base" to use BUYAMOUNTINBASE , and "tokens" to use BUYAMOUNTINTOKENS
    "BUYAMOUNTINBASE": "0.005",
    "BUYAMOUNTINTOKEN": "5",
    "MAX_BASE_AMOUNT_PER_EXACT_TOKENS_TRANSACTION": "0.5",     // used with KIND_OF_SWAP = tokens
    
    "BUYPRICEINBASE":  "0",
    "SELLPRICEINBASE": "200%",         // You can now put amount in % in this field
    "SELLAMOUNTINTOKENS": "ALL",
    "STOPLOSSPRICEINBASE": "60%",      // You can now put amount in % in this field
    "SLIPPAGE": "15",

// -----------  BUY_THE_DIP / TRAILING_STOP_LOSS  PARAMETERS -----------------------------------------------------------
    "BUY_THE_DIP_PARAMETERS": "50%---20%",       // % of the dip under ATH, then % of the rise above ATL
    "TRAILING_STOP_LOSS_PARAMETER": "80%",       // put amount in % in this field. Enter '0' if you don't want to use it
    "PING_PONG_MODE": "false",         // put 'true' if you want the bot to switch between BUY_THE_DIP mode and TRAILING_STOP_LOSS mode endlessly

// -----------  LIQUIDITY PARAMETERS -----------------------------------------------------------------------------------
    "WATCH_STABLES_PAIRS": "true",     // use this if you want bot to check all Stable Liquidity pairs
    "LIQUIDITYINNATIVETOKEN": "true",
    "USECUSTOMBASEPAIR": "false",
    "BASESYMBOL": "BUSD",
    "BASEADDRESS": "0xe9e7cea3dedca5984780bafc599bd69add087d56",
    "MINIMUM_LIQUIDITY_IN_DOLLARS": "10000",

// -----------  COUNTER  ANTI BOT PARAMETERS --------------------------------------------------------------------------- 
    "WAIT_FOR_OPEN_TRADE": "true_after_buy_tx_failed", // check Wiki, this is very useful
    "CHECK_IF_TRADING_IS_ENABLED": "false",   // BSC/AVAX/FTM only - put 'true' if you want the bot to check if openTrading is enabled after detecting liquidity
    "BUY_AND_SELL_TAXES_CHECK": "false",      // BSC/AVAX/FTM only - put 'true' if you want the bot to check BUY/SELL tax fees
    "MAX_BUY_TAX_IN_%": "20",                 // bot will buy as soon as BUY tax is lower that this value
    "MAX_SELL_TAX_IN_%": "20",                // bot will buy as soon as SELL tax is lower that this value
    "BUYAFTER_XXX_SECONDS": "0",
    "SELLAFTER_XXX_SECONDS": "0",
    "MULTIPLEBUYS": "false",            // you can use 2 options : 'several_wallets' or 'same_wallet'. Check wiki
    "BUYCOUNT": "2",

// -----------  GAS PARAMETERS -----------------------------------------------------------------------------------------
    "GAS": "BOOST",                     // Team recommend you to use BOOST here
    "GAS_FOR_APPROVE": "BOOST",         // Gas for Approval Tx. Team recommend you to use BOOST here
    "MAX_GAS": "9999",                  // Put here the maximum of GAS you want to pay if you use BOOST. If GAS > MAX_GAS Tx won't be made
    "BOOSTPERCENT": "30",
    "BOOSTPERCENT_FOR_APPROVE": "30",
    "GASLIMIT": "1000000",
    "GASPRIORITY_FOR_ETH_ONLY": "1.5",

// -----------  OTHER PARAMETERS ---------------------------------------------------------------------------------------
    "MOONBAG": "0",                     // Bot will keep this amount in your wallet after SELL order
    "MAXTOKENS": "1",                   // Bot will stop if your balance > MAXTOKENS
    "HASFEES": "false",
    "MAX_SUCCESS_TRANSACTIONS_IN_A_ROW": "2",
    "MAX_FAILED_TRANSACTIONS_IN_A_ROW": "2",
    "RUGDOC_CHECK": "true",

// -----------  PINKSALE SNIPING ---------------------------------------------------------------------------------------- 
    "PINKSALE_PRESALE_ADDRESS": "enter here the presale address if you're sniping a Pinksale listing",
    "PINKSALE_PRESALE_START_TIMESTAMP":  "1647477029"
  }
]
  • ENABLED Enable trading or not (if false, bot won't try to buy tokens)

  • SELECT_MODE To select the bot's mode Available values :

    limitswap
    buy_the_dip
    trailing_stop
    ping_pong
    limitswap+trailing_stop
    limitswap+ping_pong
    snipe_on_pinksale
    pinksale
    telegram
    telegram+trailing_stop
    telegram+ping-pong

  • SYMBOL Symbol of the token you want to buy

  • ADDRESS Contract address of the token you want to buy

  • KIND_OF_SWAP (since 4.0.4.2) You now have the choice between : 1/ "KIND_OF_SWAP": "base" --> you want to swap with an amount of Base tokens (example : I want to buy 1 BNB of CAKE token) 2/ "KIND_OF_SWAP": "tokens" --> you want to swap an exact amount of tokens (example : I want to buy 50 CAKE tokens)

  • BUYAMOUNTINBASE (used with "KIND_OF_SWAP": "base") Put here the amount in the base symbol that you want the bot to buy with 2 possibilities: 1/ Put the amount of base symbol that you want the bot to buy with Example to buy 0.001 BNB : "BUYAMOUNTINBASE": "0.001" 2/ Put a percentage of amount you hold : Example : if you hold 1BNB and enter BUYAMOUNTINBASE = 10% --> bot will buy for 0.1 BNB

  • BUYAMOUNTINTOKEN (used with "KIND_OF_SWAP": "tokens") 2 possibilities: 1/ Put the amount of tokens that you want the bot to buy If you want to buy 500 tokens : "BUYAMOUNTINTOKEN": "500" 2/ Put a percentage of the TOTAL SUPPLY : 'xx%supply' Example : if token has total supply = 100000 and you enter BUYAMOUNTINTOKENS = '1%supply' --> bot will buy 1% * 100000 = 1000 tokens

  • MAX_BASE_AMOUNT_PER_EXACT_TOKENS_TRANSACTION (used with "KIND_OF_SWAP": "tokens") Put here the maximum amount of BNB / ETH / AVAX... that you want the bot to use, if you're swapping per tokens --> this option avoids you to spend too much to buy the tokens you want to buy

  • BUYPRICEINBASE (used with "KIND_OF_SWAP": "base") Buy price of 1 token in the base symbol : if the price of 1 token is < or = to this price, the bot will buy.

If you want the bot to never buy, set BUYPRICEINBASE = 0 (price cannot be below 0)

  • SELLPRICEINBASE Sell price of 1 token in the base symbol : if the price of 1 token is > or = to this price, the bot will sell. (it will sell at the Market price, not at your price) NEW SINCE 4.2.1 : you can now enter a sell price in % LimitSwap is now able to determine the SELL price according to your real BUY price

    You just need to enter an amount in % in SELLPRICEINBASE and STOPLOSSPRICEINBASE, and it will automatically calculate sell price.

    Example :

    "SELLPRICEINBASE": "300%"

    "STOPLOSSPRICEINBASE": "60%"

BUYPRICEINBASE and SELLPRICEINBASE are the buy price of ONE token in BASE pair.

Think about it as if you were in front of this screen:

If you want the bot to never sell, set SELLPRICEINBASE = 99999999

  • STOPLOSSPRICEINBASE Set your Stop Loss price in the base symbol Bot will sell if token price < STOPLOSS price

  • SLIPPAGE Slippage you want to use (in %).

  • MOONBAG Minimal amount of token you want to keep in your wallet. If you don't want to keep any token, put 0. (in this example, the bot will keep at least 20 KPAD token in your wallet)

  • MAXTOKENS This parameter is used to make the bot stop buying:

    • before buying, the bot checks MAXTOKENS

    • if you hold more tokens than MAXTOKENS, the bot does not buy

This parameter does not influence how many tokens the bot will buy during your trade: if you set MAXTOKENS = 1, the bot can buy 50000 tokens for example, no problem

➑️ If you want to make the bot stop buying after 1 trade, set MAXTOKENS to a low value, like "1" for instance.

  • RUGDOC_CHECK Call RugDoc's API to check if a contract is a honeypot or not.

    Check their website, be careful it cannot be 100% reliable of course!

    https://rugdoc.io/honeypot/

Anti-antibot parameters

  • BUYAFTER_XXX_SECONDS

  • SELLAFTER_XXX_SECONDS

  • WAIT_FOR_OPEN_TRADE

  • START_BUY_AFTER_TIMESTAMP START_SELL_AFTER_TIMESTAMP

  • MULTIPLEBUYS

  • BUYCOUNT

Please read dedicated "Counter anti-bot measures" page

Liquidity parameters

  • LIQUIDITYINNATIVETOKEN

  • USECUSTOMBASEPAIR

  • BASESYMBOL

  • BASEADDRESS

  • WATCH_STABLES_PAIRS

⚠️ ⚠️⚠️ Please read dedicated page carefully ⚠️⚠️⚠️

WARNING : be VERY CAREFUL about those liquidity options If you set up wrong configuration, bot will trade on wrong pair and make you lose funds. Beware

BUY THE DIP parameter

Please read dedicated "BUY THE DIP" page

TRAILING STOP LOSS parameter

Please read dedicated "TRAILING STOP" page

Pinksale parameters

  • PINKSALE_PRESALE_ADDRESS

  • PINKSALE_PRESALE_START_TIMESTAMP

Please read dedicated "Snipe Pinksale launches" page

  • MAX_FAILED_TRANSACTIONS_IN_A_ROW Tells the bot to stop making buy/sell orders after XXX failed transactions

  • MAX_SUCCESS_TRANSACTIONS_IN_A_ROW Tells the bot to stop making buy/sell orders after XXX success transactions Example : if you want the bot to make 1 BUY and 1 SELL Tx, set it to 2

  • MINIMUM_LIQUIDITY_IN_DOLLARS Use this option if you want the bot to set a minimal amount of liquidity before buying.

    Put liquidity amount in $.

Some people add very small amount of liquidity to Exchanges --> if you swap on this, you will lose all your money !! To avoid this, the team recommend to set MINIMUM_LIQUIDITY_IN_DOLLARS = 10000

  • SELLAMOUNTINTOKENS Put here the amount of token that you want the bot to sell

  • HASFEES Select "TRUE" if you want to trade a token with additional fees, like automatic transfer to liquidity when you buy / additional taxes / rebase / etc. If you don't use this on such tokens, you may have a Tx failed with "Pancake:K" error

  • GAS / BOOSTPERCENT

    There is 2 ways to set your Gas :

  1. Set your own fixed Gas price --> simply set Gas price in "GAS" parameter

    "GAS": "200",
  2. Let the bot calculate Gas price relating to current Gas Price on blockchain :

    1. it reads the gas price on the blockchain

    2. it applies the boost you set on Fast price. Example :

"GAS": "BOOST",
"BOOSTPERCENT": "30",

Since v4.3.1.4, you can choose :

  • GAS --> for the main Tx

  • GAS_FOR_APPROVE --> for the Approval Tx

(and use BOOSTPERCENT_FOR_APPROVE if you use "BOOST" for GAS_FOR_APPROVE)

  • MAX_GAS Put here the maximum of GAS you want to pay if you use BOOST. If GAS > MAX_GAS : Tx won't be made

  • GASLIMIT Set it with the Gaslimit value you want to use (we recommend to set it to 1000000 to avoid to be out of Gas)

  • GASPRIORITY_FOR_ETH_ONLY This is EIP1559 Tx, for ETH and AVAX only : sets Max Priority Gas. The max priority fee, also referred to as the "miner tip", goes to the miner or validator, and incentivizes them to prioritize your transaction. Most often, the value you put in for "max priority fee" will be the amount you pay. More details here : https://www.blocknative.com/blog/eip-1559-fees

4/ Launch the bot πŸš€

Last updated