# Set-up Guide

## 1. First steps

{% hint style="info" %}
&#x20;Prerequisites :

* Windows operating system (your computer or a [VPS](https://en.wikipedia.org/wiki/Virtual_private_server), have a look at the FAQ)
  {% endhint %}

## 2. Configure your settings

You need first to configure your account.&#x20;

1\. **Run the ChainSniper PumpBot first**,  and enter your wallet and Private Key, or add them into the .json file.

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

```
[
{
    "WALLETADDRESS": "0x68d8Bfa07451dBa40ec61FdB6b431e04C99368DE",
    "PRIVATEKEY": "083d1908f5b162cf94c651e85a5d61223b85c645aa944796dbcdf28df720033f",
    "WALLETADDRESS2": "null",
    "PRIVATEKEY2": "null",
    "WALLETADDRESS3": "null",
    "PRIVATEKEY3": "null",
    "WALLETADDRESS4": "null",
    "PRIVATEKEY4": "null",
    "WALLETADDRESS5": "null",
    "PRIVATEKEY5": "null",
    
    "MEMPOOL_METHOD": "public_node",
    "USECUSTOMNODE": "false",
    "CUSTOMNODE": "false",
    
    "EXCHANGE": "pancakeswap",
    "EXCHANGEVERSION": "2",
    "PREAPPROVE": "true",
    "UNLIMITEDSLIPPAGE": "false",
    "VERBOSE_PRICING": "true",
    "SLOW_MODE": "false",
    "START_BUY_AFTER_TIMESTAMP": "not used",
    "START_SELL_AFTER_TIMESTAMP": "not used",

    "_EXCHANGE_BASE_SYMBOL": "BNB ",
    "_STABLE_BASES": {
        "USDT": {
            "address": "0x55d398326f99059ff775485246999027b3197955",
            "multiplier": 0
        },
        "BUSD": {
            "address": "0xe9e7cea3dedca5984780bafc599bd69add087d56",
            "multiplier": 0
        },
        "USDC": {
            "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
            "multiplier": 0
        }
    },
    "ENCRYPTPRIVATEKEYS": "false"
}
]

```

{% hint style="success" %}
Chainsniper can trade with 5 wallets at the same time, if you use MULTIPLEBUYS option
{% endhint %}

* **EXCHANGE** : enter the exchange you want to use. Available values:&#x20;
  * Uniswap
  * Pancakeswap
  * Biswap
  * Pinkswap
  * Babyswap
  * Bakeryswap
  * Spiritswap
  * Spookyswap
  * Protofi
  * ApeSwap
  * Quickswap
  * Polygon-apeswap
  * Waultswap
  * KuSwap
  * KoffeeSwap
  * Pangolin
  * Traderjoe
  * Tethys
  * Cronos-vvs
  * Cronos-crona
  * Viperswap
  * ... and also Pancakeswaptestnet and Uniswaptestnet, if you want to use the bot on testnets.<br>

{% hint style="info" %}
**TUTORIAL : HOW TO TEST THE BOT ON PANCAKE TESTNET**<br>

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&#x20;

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 :)&#x20;

**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**<br>

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&#x20;

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&#x20;

&#x20;   "GAS": "BOOST",

&#x20;   "BOOSTPERCENT": "150",

8/ Snipe :)

9/ See results here : <https://rinkeby.etherscan.io/>
{% endhint %}

* **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.\ <br>
* **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](https://metamask.zendesk.com/hc/en-us/articles/360015289632-How-to-Export-an-Account-Private-Key) to learn how to export your private key from Metamask.

{% hint style="info" %}
You can use **same wallet or different wallets.** It's as you prefer.
{% endhint %}

* **USECUSTOMNODE** \
  Set it to "true" if you want to use a custom node.\ <br>

* **CUSTOMNODE** \
  If you want to use a custom node, enter here your node's address **in http, wss, or IPC**\
  Example: wss\://bsc-ws-node.nariox.org:443&#x20;

* **PREAPPROVE** \
  Tells the bot to preapprove tokens on startup or not<br>

* **ENCRYPTPRIVATEKEYS** \
  Will be filled automatically when you start the bot for the first time\ <br>

* **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.&#x20;

{% hint style="danger" %} <mark style="color:red;">**Use UNLIMITED SLIPPAGE WITH CAUTION**</mark> \ <mark style="color:red;">THIS SHOULD BE USED FOR DEGEN SNIPES ONLY AND CAN RESULT IN LOSS OF FUNDS IF USED INCORRECTLY!!!</mark>
{% endhint %}

* **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 :&#x20;

![](/files/HYLXfAWtwe632h0LoUY7)

* **SLOW\_MODE**

  A user contacted me because he was running the bot 24/7 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, who **makes the bot do price check every 0.5s only**.\
  Use it if you let the bot run all night on default node, if you just need to sell tokens without need for sniping, for instance

  To use it :

  * enter `SLOW_MODE : true` in settings.json

## 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",
    "SYMBOL": "CAKE",
    "ADDRESS": "0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82",

// -----------  BUY / SELL  PARAMETERS ---------------------------------------------------------------------------------------- 
    "KIND_OF_SWAP": "base",            // enter "base" to use BUYAMOUNTINBASE , and "tokens" to use BUYAMOUNTINTOKENS
    "BUYAMOUNTINBASE": "0.000001",
    "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
    "TRAILING_STOP_LOSS": "40%",       // put amount in % in this field. Enter '0' if you don't want to use it
    "SLIPPAGE": "5",

// -----------  LIQUIDITY PARAMETERS ---------------------------------------------------------------------------------------- 
    "WATCH_STABLES_PAIRS": "false",     // 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
    "BUY_AND_SELL_TAXES_CHECK": "true",
    "MAX_BUY_TAX_IN_%": "2",
    "MAX_SELL_TAX_IN_%": "2",
    "BUYAFTER_XXX_SECONDS": "0",        
    "MULTIPLEBUYS": "false",            // you can use 2 options : 'several_wallets' or 'same_wallet'. Check wiki
    "BUYCOUNT": "2",

// -----------  GAS PARAMETERS ---------------------------------------------------------------------------------------- 
    "GAS": "BOOST",                     // PumpBot 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",
    "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",
    "ALWAYS_CHECK_BALANCE": "false",    // use this if you want bot to check your token balance between each price check

// -----------  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)\ <br>
* **SYMBOL**\
  Symbol of the token you want to buy\ <br>
* **ADDRESS**\
  Contract address of the token you want to buy<br>
* **KIND\_OF\_SWAP**\
  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)\ <br>
* **BUYAMOUNTINBASE** (used with "KIND\_OF\_SWAP": "**base**")\
  Put here the amount **in the base symbol** that you want the bot to buy with\ <br>
* **BUYAMOUNTINTOKEN** (used with "KIND\_OF\_SWAP": "**tokens**")\
  Put here the **amount** **of tokens** that you want the bot to buy \ <br>
* **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\ <br>
* **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.

{% hint style="info" %}
**If you want the bot to never buy, set BUYPRICEINBASE = 0** \
(price cannot be below 0)
{% endhint %}

* **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)\
  \ <mark style="color:red;">**NEW : you can now enter a sell price in %**</mark>\
  Chainsniper 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.<br>

  **Example :**

  &#x20;   "SELLPRICEINBASE": "300%"

  &#x20;   "STOPLOSSPRICEINBASE": "60%"

{% hint style="warning" %}
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:

{% endhint %}

![](/files/jKkwnpaUKYaNrJPuRTez)

{% hint style="info" %}
**If you want the bot to never sell, set SELLPRICEINBASE = 99999999**
{% endhint %}

* **STOPLOSSPRICEINBASE**\
  Set your Stop Loss price **in the base symbol** \
  Bot will sell if token price < STOPLOSS price<br>
* **TRAILING\_STOP\_LOSS**\
  A trailing stop-loss is an **intelligent version of a normal stop-loss**, which is a limit sell that fills if the price dips below a certain point, preventing losses from happening.<br>

  In a trailing stop-loss, the sell price follows (or “trails”) behind the current price of your chosen token, meaning that if the price moons and then unexpectedly drops, then the stop-loss would trigger at a higher price, meaning more profits for you.\
  \
  `How to use it :`\
  "TRAILING\_STOP\_LOSS": "80%" means that bot will sell if price goes down to 80% of ATH price (--> if ATH was 2$, bot will sell at 1.60$)

  \ <br>
* **SLIPPAGE** \
  Slippage you want to use (in %).\ <br>
* **MOONBAG**\
  Minimal amount of token you want to keep in your wallet. If you don't want to keep any token, put 0.\
  \&#xNAN;*(in this example, the bot will keep at least 20 KPAD token in your wallet)*\ <br>
* **MAXTOKENS** \
  This parameter is used to **make the bot stop buying**:
  * before buying, the bot checks MAXTOKENS&#x20;
  * if you hold more tokens than MAXTOKENS, the bot does not buy

{% hint style="info" %}
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
{% endhint %}

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

* **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&#x20;
* WAIT\_FOR\_OPEN\_TRADE
* START\_BUY\_AFTER\_TIMESTAMP\
  START\_SELL\_AFTER\_TIMESTAMP
* MULTIPLEBUYS
* BUYCOUNT

[Please read dedicated "Counter anti-bot measures" page<br>](broken://pages/0GHwxx2ZP5ljH6ABGiAu)

### Liquidity parameters

* LIQUIDITYINNATIVETOKEN
* USECUSTOMBASEPAIR
* BASESYMBOL
* BASEADDRESS
* WATCH\_STABLES\_PAIRS<br>

:warning: :warning::warning: [Please read dedicated page carefully](broken://pages/hrhc9N0t8ufev6rwoquh) :warning::warning::warning:

{% hint style="danger" %} <mark style="color:red;">**WARNING : be VERY CAREFUL about those liquidity**</mark> <mark style="color:red;">**options**</mark>\ <mark style="color:red;">If you set up wrong configuration, bot will trade on wrong pair and make you lose funds. Beware</mark>
{% endhint %}

### Pinksale parameters

* PINKSALE\_PRESALE\_ADDRESS
* PINKSALE\_PRESALE\_START\_TIMESTAMP
* "WAIT\_FOR\_OPEN\_TRADE": "pinksale"

[Please read dedicated "Snipe Pinksale launches" page<br>](broken://pages/8XNrW4Di4186q3BWonjE)

* **MAX\_FAILED\_TRANSACTIONS\_IN\_A\_ROW** \
  Tells the bot to stop making buy/sell orders after XXX failed transactions\ <br>
* **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**\ <br>
* **ALWAYS\_CHECK\_BALANCE**\
  To increase speed to maximum, the default behaviour of Chainsniper is to check your balance only at bot launch. It allows to reduce the amount of actions before make a sell order.\
  But some users want the bot to detect when they receive a token in their wallet while the bot is running, to sell the tokens as quickly as possible\
  \--> use this option to **make the bot check your tokens balance between every price check** (but this makes the bot a little bit slower - not too much slower, don't worry)\ <br>
* **MINIMUM\_LIQUIDITY\_IN\_DOLLARS** (since 4.0.5)\
  Use this option if you want the bot to set a **minimal** **amount of liquidity** before buying.

  Put liquidity amount in $.

{% hint style="danger" %}
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**
{% endhint %}

* **SELLAMOUNTINTOKENS**\
  Put here the **amount** **of token** that you want the bot to sell \ <br>
* **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 <mark style="color:red;">Tx failed with "Pancake:K" error</mark>\ <br>
* **GAS / BOOSTPERCENT**&#x20;

  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&#x20;
   2. it applies the boost you set on Fast price. Example :

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

* **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\ <br>
* **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)\ <br>
* **GASPRIORITY\_FOR\_ETH\_ONLY**\
  This is 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> &#x20;

![](/files/wZ4AjsNE4WewZRy6cEE4)

## 4/ Launch the bot :rocket:&#x20;

* Start making Money on DEX Exchanges!
* Enjoy your Lambo :race\_car:&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.pump-bot.com/dex-bot-sniper-bot-front-running-bot/set-up-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
