swap

swap tokens

/bsc/pcs/swap

POST https://cryptotalk-public-gateway-byeii62k.de.gateway.dev/bsc/pcs/swap

Support all swap requests : token to token, token to BNB, BNB to token. Sample code is given below. Request body 1. addr : Wallet address 2. frm_tkn_addr : Token to be swapped from 3. to_tkn_addr: Token to be swapped to 4. amt_float: input amount as floating point (keep max decimals to 7) 5. slippage: desired slippage (0.01 for 1%, 0.03 for 3% and so on) 6. path: Path that should be taken to swap tokens (ex: BNB > BUSD > USDC) 7. min_output_amt: Minimum acceptable returned amount 8. isInputFixed: send true if input amount is fixed, send false is output amount is fixed

Query Parameters

Name
Type
Description

key

string

API Key

Request Body

Name
Type
Description

params

object

{ "to_tkn_addr" "0xbb4cdb9..c095c", "frm_tkn_addr" : "0xeeee..eeeeeeee", "amt_float" : 0.1, "min_output_amt" : 0.1, "gas" : "10", "isInputFixed" : true, "slippage" : 0.01, "addr" : "0xaaaa..4", "path" : [] }

{
  isError: false,
  errorMsg: 'NA',
  methodName: 'swapExactTokensForTokens',
  rawTx: {
    from: '0x5585d5365f37671eecc0fdcac5a06bd1d176408e',
    value: '0x0',
    to: '0x05ff2b0db69458a0750badebc4f9e13add608c7f',
    data: '0x38ed173900000000000000000000000000000000000000000000000000b03006698f2000000000000000000000000000000000000000000000000000c21f642a306e780000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000005585d5365f37671eecc0fdcac5a06bd1d176408e00000000000000000000000000000000000000000000000000000000605059200000000000000000000000000000000000000000000000000000000000000004000000000000000000000000a184088a740c695e156f91f5cc086a06bb78b827000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c000000000000000000000000e9e7cea3dedca5984780bafc599bd69add087d560000000000000000000000000e09fabb73bd3ade0a17ecc321fd13a19e81ce82',
    nonce: '0xf24',
    gasLimit: '0x7a120',
    gasPrice: '0x2540be400'
  }
}

Sample code to swap 0.05 AUTO token to BUSD through pancake swap

## Simple Javascript example on how to swap tokens via pancake swap ##
async function swap(){
  const fetch         = require('node-fetch');
  const _             = require('lodash');
  const amount        = 0.05;
  const TOKEN_LIST    = "https://cryptotalk-public-gateway-byeii62k.de.gateway.dev/bsc/tokens-list";
  const QUOTE_URL     = "https://cryptotalk-public-gateway-byeii62k.de.gateway.dev/bsc/pcs/quote";
  const SWAP_URL      = "https://cryptotalk-public-gateway-byeii62k.de.gateway.dev/bsc/pcs/swap";
  const BROADCAST_URL = "https://cryptotalk-public-gateway-byeii62k.de.gateway.dev/bsc/broadcast";
  const API_KEY       = "AIzaSyCngkz41JSdBMlr4iKqAMLiTMHD9TfQvuc";

    async function localStylePost(URL, body){
        let txn_response = await fetch(URL, { method : 'post', body : JSON.stringify({ params : body}), headers: { 'Content-Type': 'application/json'}});
        return txn_response.json();    
    }

    async function localStyleGet(URL, query){
        let txn_response = await fetch(URL + query);
        return txn_response.json();
    }
    
  console.log("step - 1 : Your wallet address\n");
  const myAddr  = "0x5585d5365f37671eecc0fdcac5a06bd1d176408e"; //account.address;

  console.log("step - 2 : Fetching BEP20 token list address\n");
  let token_list_object = await localStyleGet(TOKEN_LIST + "?key=" + API_KEY, "");

  console.log("step - 3 : Get Quote\n");
  let quote_req_body = {
            frm_tkn_addr  : _.find(token_list_object.data, ['symbol', 'AUTO']).address,
            to_tkn_addr   : _.find(token_list_object.data, ['symbol', 'BUSD']).address,
            amt_float     : amount
        }
  let quote_response = await localStylePost(QUOTE_URL + "?key=" + API_KEY, quote_req_body);
      quote_response = quote_response.data.bestRate;
  console.log(quote_response);

  console.log("step - 4 : Swap request body preparation\n");
  let swap_req_body = {
      "frm_tkn_addr"      : _.find(token_list_object.data, ['symbol', 'AUTO']).address,
      "to_tkn_addr"       : _.find(token_list_object.data, ['symbol', 'BUSD']).address,
      "amt_float"         : amount,
      "min_output_amt"    : quote_response.quote,
      "gas" 		          : "10",
      "isInputFixed" 	    : true,
      "slippage"		      : 0.01, 
      "addr"              : myAddr,
      "path"			        : quote_response.route_addr
  }
  
  console.log("step - 4: creating a swap request\n");
  let swap_req  = await localStylePost(SWAP_URL + "?key=" + API_KEY, swap_req_body);
  console.log(swap_req);
}

Last updated

Was this helpful?