# API

**Quote：**<http://xxxx.bridge/v1/quote?network=xxxx>

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

async function processRequest() {

  const apiUrl = 'http://xxxx.bridge/v1/quote?network=137'; 

  const quoteRequestData = {
    "partnerFee": "2147565568030", 
    "srcChainId": 137, 
    "srcToken": { 
    "chainId": 137,
    "decimals": 6,
    "symbol": "USDT",
    "name": "USDT",
    "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F"
    },
    "srcTokenAmount": "3720000",
    "destChainId": 56, 
    "destToken": {
    "chainId": 56,
    "decimals": 18,
    "symbol": "USDT", 
    "name": "USDT",
    "address": "0x55d398326f99059fF775485246999027B3197955"
    }
  };
  
  await axios.post(apiUrl, quoteRequestData)
    .then(response => {
      console.log(response.data.data);
	})
};

processRequest()
```

{% endtab %}
{% endtabs %}

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  code: 200,
  msg: 'Success',
  data:{
      "allowanceTarget": "0xBEdB227947500b8d12d803C4dB77aC3336Ac4198",
      "contractAddress": "0xF81CC2e1C891147510F31777f6a853f58E4cDc64",
      "partnerFee": "2147565568030",
      "routers": [
        {
          "srcChainId": 1,
          "srcToken": {
            "decimals": 6,
            "symbol": "USDC",
            "name": "USDC",
            "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
          },
          "srcTokenAmount": "1000000",
          "destChainId": 137,
          "destToken": {
            "decimals": 6,
            "symbol": "USDC",
            "name": "USDC",
            "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"
          },
          "bridgeInfo": {
            "bridgeName": "stargate",
            "srcChainId": 1,
            "srcBridgeToken": {
              "chainId": 1,
              "decimals": 6,
              "symbol": "USDC",
              "name": "USDC",
              "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
            },
            "destChainId": 137,
            "destBridgeToken": {
              "chainId": 137,
              "decimals": 6,
              "symbol": "USDC",
              "name": "USDC",
              "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"
            },
            "srcBridgeTokenAmount": "1000000",
            "destBridgeTokenAmount": "998537",
            "bridgeFeeToken": {
              "chainId": 137,
              "decimals": 6,
              "symbol": "USDC",
              "name": "USDC",
              "address": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"
            },
            "bridgeFeeAmount": "1463",
            "destGasFeeToken": {
              "chainId": 1,
              "address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
              "decimals": 18,
              "symbol": "ETH",
              "name": "ETH",
              "isNative": true
            },
            "destGasFeeAmount": "0", 
            "depositMin": "0", 
            "depositMax": "0" 
          },
          "minReceiveAmount": "998537",
          "jetonFeeToken": {
            "chainId": 1,
            "decimals": 6,
            "symbol": "USDC",
            "name": "USDC",
            "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
          },
          "jetonFeeAmount": "3000",
          "estimatedTransferTimeMin": "100", 
          "estimatedTransferTimeMax": "120"
        }
      ]
    }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "error": "Invalid request"
}
```

{% endtab %}
{% endtabs %}

**Encode：**<http://xxxx.bridge/v1/encode?network=xxxx>

{% tabs %}
{% tab title="JavaScript" %}

```javascript
const axios = require('axios');

async function processRequest() {

  const apiUrl = 'http://xxxx.bridge/v1/quote?network=137'; 

  const quoteRequestData = {
    "partnerFee": "2147565568030", 
    "srcChainId": 137, 
    "srcToken": { 
    "chainId": 137,
    "decimals": 6,
    "symbol": "USDT",
    "name": "USDT",
    "address": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F"
    },
    "srcTokenAmount": "3720000",
    "destChainId": 56, 
    "destToken": {
    "chainId": 56,
    "decimals": 18,
    "symbol": "USDT", 
    "name": "USDT",
    "address": "0x55d398326f99059fF775485246999027B3197955"
    }
  };
  
  var routerData;
  
  await axios.post(apiUrl, quoteRequestData)
    .then(response => {
      console.log(response.data.data);
      routerData = response.data.data.routers[0]
   })
};

  const encodeApiUrl = 'http:xxxx/bridge/v1/encode?network=137'; 

  const requestData = {
    "allowanceTarget": "0x7D60c5A9CFFC091CdeD4fDDcB4ae7c007151fb97",
    "beneficiary": "0x67E795740FF8a28a0c8b1E7DBCecdFd797E6090f",
    "contractAddress": "0x7D60c5A9CFFC091CdeD4fDDcB4ae7c007151fb97",
    "partnerFee": "1342341120000",
    "permits": [],
    "referrerAddress": "0xF405b9BA64143E125d14019D3147145267c059EA",
    "router": routerData,
    "userAddress":"0xC88aE97BDD25366eCe0b9CB78c179674295D0425"
  }

  try {

    await axios.post(encodeApiUrl, requestData)
    .then(response => {
      console.log(response.data.data);
    })
    .catch(error => {
      console.log(error);
    });

  } catch (error) {
    console.error(error);
  }
}

processRequest();
```

{% endtab %}
{% endtabs %}

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  from: '0xC88aE97BDD25366eCe0b9CB78c179674295D0425',
  to: '0x7D60c5A9CFFC091CdeD4fDDcB4ae7c007151fb97',
  value: '0',
  data: '0x1771fa39000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000003c0861dc13ff8eb910f91132d3dbf5c48a07751e2930e45174db0489c5bedd0b55200000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000089000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f000000000000000000000000000000000000000000000000000000000038c340000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003800000000000000000000000055d398326f99059ff775485246999027b319795500000000000000000000000055d398326f99059ff775485246999027b31979550000000000000000000000000000000000000000000000002ee938649707700000000000000000000000000067e795740ff8a28a0c8b1e7dbcecdfd797e6090f00000000000000000000000067e795740ff8a28a0c8b1e7dbcecdfd797e6090f000000000000000000000000f405b9ba64143e125d14019d3147145267c059ea0000000000000000000000000000000000000000000000000000000066b5c3480000000000000000000000000000000000000000000000000000013889c400000000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000000473776674000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f000000000000000000000000000000000000000000000000000000000038c3400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000002ee938649707700000000000000000000000000000000000000000000000000000000000000000095553445428425343290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a30783637453739353734304646386132386130633862314537444243656364466437393745363039306600000000000000000000000000000000000000000000'
}
```

{% endtab %}
{% endtabs %}
