# Endpoint list

## Get plaftorms

<mark style="color:blue;">`GET`</mark> `v1/platforms`

Provides a list of supported blockchain networks.

**Request sample:**\
`https://api.yad.finance/v1/platforms`

{% tabs %}
{% tab title="200: OK OK" %}
{% tabs %}
{% tab title="Example" %}

```json
{
  "platforms": [
    {
      "chainId": 1,
      "name": "Ethereum",
      "shortname": "ETH"
    },
    {
      "chainId": 10,
      "name": "Optimistic Ethereum",
      "shortname": "Optimism"
    },
    {
      "chainId": 56,
      "name": "BNB Smart Chain",
      "shortname": "BSC"
    }
  ]
}
```

{% endtab %}

{% tab title="Schema" %}

{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}

## Get gas prices

<mark style="color:blue;">`GET`</mark> `v1/{chainID}/gasprices`

Provides calculated gas price values in GWEI (nAVAX for Avalanche).

**Request sample:**\
`https://api.yad.finance/v1/1/gasprices`

#### Path Parameters

| Name                                      | Type    | Description                                             |
| ----------------------------------------- | ------- | ------------------------------------------------------- |
| chainId<mark style="color:red;">\*</mark> | Integer | The blockchain ID for which the gas price is requested. |

{% tabs %}
{% tab title="200: OK OK" %}
{% tabs %}
{% tab title="Example" %}

```json
{
  "baseFee": "13.757",
  "low": "14.757",
  "lowInfo": {
    "price": "14.757",
    "maxPriorityFeePerGas": "0.5",
    "maxFeePerGas": "14.257"
  },
  "medium": "16.757",
  "mediumInfo": {
    "price": "16.757",
    "maxPriorityFeePerGas": "0.55",
    "maxFeePerGas": "15.683"
  },
  "high": "18.757",
  "highInfo": {
    "price": "18.757",
    "maxPriorityFeePerGas": "0.65",
    "maxFeePerGas": "18.535"
  }
}
```

{% endtab %}

{% tab title="Schema" %}

{% endtab %}
{% endtabs %}
{% endtab %}

{% tab title="400: Bad Request Bad Request" %}

{% endtab %}

{% tab title="500: Internal Server Error Internal Server Error" %}

{% endtab %}
{% endtabs %}

## Get on-chain price for pair

<mark style="color:blue;">`GET`</mark> `v1/{chainID}/price`

Returns the best route and exchange offer for pair, no calldata for transaction. Works faster than `/quote`.\
\
**Request sample:**\
`https://api.yetanotherdefi.com/v1/1/price?fromTokenAddress=0xdac17f958d2ee523a2206206994597c13d831ec7&toTokenAddress=0x6b175474e89094c44da98b954eedeac495271d0f&amount=1500000000&slippage=1&gasPrice=16000000000&feeRecipient=0xdac17f958d2ee523a2206206994597c13d831ec7&buyTokenPercentageFee=1&sellTokenPercentageFee=1&rfqOnly=false&withGas=false`

#### Path Parameters

| Name                                      | Type    | Description                                         |
| ----------------------------------------- | ------- | --------------------------------------------------- |
| chainID<mark style="color:red;">\*</mark> | Integer | Blockchain ID. (Supported networks - /v1/platforms) |

#### Query Parameters

| Name                                               | Type    | Description                                                                                                                                                                                                                                                 |
| -------------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| fromTokenAddress<mark style="color:red;">\*</mark> | String  | Smart contract address of the sale token.                                                                                                                                                                                                                   |
| toTokenAddress<mark style="color:red;">\*</mark>   | String  | Smart contract address of the purchase token.                                                                                                                                                                                                               |
| amount<mark style="color:red;">\*</mark>           | Integer | The amount of sale tokens in decimals of the token (can be taken from the method `/tokens`).                                                                                                                                                                |
| slippage<mark style="color:red;">\*</mark>         | Number  | <p>The amount of slippage allowed during the actual execution of the transaction (10 = 1% slippage). If the price changes by more than this percentage, the transaction will revert. Min = 1 (0.1%), max = 500 (50%).<br><br><em>Default value</em> : 1</p> |
| gasPrice                                           | String  | Gas price value for making a transaction in WEI (nAVAX for Avalanche) (1 GWEI = 1000000000 WEI), default value is the value high from `/gasprices`.                                                                                                         |
| feeRecipient                                       | String  | Wallet address for receiving fees. The commission is paid from the purchase token.                                                                                                                                                                          |
| buyTokenPercentageFee                              | Integer | Percentage of commission from the amount of purchase tokens, is taken in favor of feeRecipient. (10 = 1%, maximum value is 500).                                                                                                                            |
| sellTokenPercentageFee                             | Integer | Percentage of commission from the amount of sale tokens, is taken in favor of feeRecipient. (10 = 1%, maximum value is 500).                                                                                                                                |
| rfqOnly                                            | Boolean | <p>If TRUE: use only RFQ providers for routing.</p><p><br><em>Default value</em> : false</p>                                                                                                                                                                |
| excludeAggregator                                  | String  | Exclude some aggregators from routing (add several parameters for multiple exclude)                                                                                                                                                                         |
| includeAggregator                                  | String  | Include some aggregators from routing (add several parameters for multiple include). This parameter cannot be combined with excludedAggregators.                                                                                                            |
| withGas                                            | Boolean | <p>If TRUE: choose a route based on gas.</p><p></p><p><em>Default value</em> : false</p>                                                                                                                                                                    |

{% tabs %}
{% tab title="200: OK OK" %}
{% tabs %}
{% tab title="Example" %}

```json
{
  "amount_out_total": "1498367401285001674752",
  "estimate_gas_total": "595785",
  "token_in": "0xdac17f958d2ee523a2206206994597c13d831ec7",
  "token_out": "0x6b175474e89094c44da98b954eedeac495271d0f",
  "gas_price": "16000000000",
  "fee_recipient_amount": "1497002",
  "routes": [
    {
      "type": "dex",
      "protocol_name": "eth_odos",
      "percent": 100
    }
  ]
}
```

{% endtab %}

{% tab title="Schema" %}

{% endtab %}
{% endtabs %}
{% endtab %}

{% tab title="204: No Content No Content" %}

{% endtab %}
{% endtabs %}

## Transaction allowance

<mark style="color:blue;">`GET`</mark> `v1/{chainID}/transaction/allowance`

Checks how many of the user's tokens the exchange smart contract has access to.

**Request sample:**\
`https://api.yad.finance/v1/1/transaction/allowance?tokenAddress=0xdAC17F958D2ee523a2206206994597C13D831ec7&walletAddress=0x58f58219e2d2598588c1b457bb6da65c34d99310`

#### Path Parameters

| Name                                      | Type    | Description                                                                              |
| ----------------------------------------- | ------- | ---------------------------------------------------------------------------------------- |
| chainID<mark style="color:red;">\*</mark> | Integer | The ID of the blockchain the token is located on (supported networks - `/v1/platforms`). |

#### Query Parameters

| Name                                            | Type   | Description                                                            |
| ----------------------------------------------- | ------ | ---------------------------------------------------------------------- |
| tokenAddress<mark style="color:red;">\*</mark>  | String | Smart contract address of the token for which access is being checked. |
| walletAddress<mark style="color:red;">\*</mark> | String | Wallet of the user for which access is being checked.                  |

{% tabs %}
{% tab title="200: OK OK" %}
{% tabs %}
{% tab title="Example" %}

```
{
  "remaining": "11579208923731620000"
}
```

{% endtab %}

{% tab title="Schema" %}

{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}

## Transaction approve

<mark style="color:blue;">`GET`</mark> `v1/{chainID}/transaction/approve`

Generates transaction input parameters to provide access to the user's tokens for the exchange smart contract.

**Request sample:**\
`https://api.yad.finance/v1/1/transaction/approve?tokenAddress=0xdAC17F958D2ee523a2206206994597C13D831ec7&amount=100000000000&gasPrice=100000000000`

#### Path Parameters

| Name                                      | Type    | Description                                                                          |
| ----------------------------------------- | ------- | ------------------------------------------------------------------------------------ |
| chainID<mark style="color:red;">\*</mark> | Integer | ID of the blockchain the token is located on (supported networks - `/v1/platforms`). |

#### Query Parameters

| Name                                           | Type    | Description                                                                                           |
| ---------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------- |
| tokenAddress<mark style="color:red;">\*</mark> | String  | Address of the smart contract of the token for which the access request is generated.                 |
| takerAddress                                   | String  | Address of user’s wallet which will provide approve. When provided the gas will be estimated exactly. |
| amount                                         | integer | The amount of user tokens to which access is granted. By default - infinite number.                   |
| gasPrice                                       | Integer | Cost of gas for an approve transaction. By default: medium                                            |
| contractAddress                                | String  | Contract that we want to give an approval. If not passed, then the default for chain is used.         |

{% tabs %}
{% tab title="200: OK OK" %}
{% tabs %}
{% tab title="Example" %}

```
{
  "calldata": "0x095ea7b30000000000000000000000001aaad07998466cd3eb8140827dddb37570be1e63000000000000000000000000000000000000000000000000000000174876e800",
  "gas_price": "100000000000",
  "to": "0xdac17f958d2ee523a2206206994597c13d831ec7",
  "estimate_gas": "48561"
}
```

{% endtab %}

{% tab title="Schema" %}

{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}

## Get on-chain quote for pair

<mark style="color:blue;">`GET`</mark> `v1/{chainID}/quote`

Returns the best exchange offer and input parameters for the transaction.

**Request sample:**\
`https://api.yetanotherdefi.com/v1/1/quote?fromTokenAddress=0xdac17f958d2ee523a2206206994597c13d831ec7&toTokenAddress=0x6b175474e89094c44da98b954eedeac495271d0f&amount=1500000000&slippage=1&gasPrice=16000000000&feeRecipient=0xdac17f958d2ee523a2206206994597c13d831ec7&buyTokenPercentageFee=1&sellTokenPercentageFee=1&skipValidation=true&withGas=false`

#### Path Parameters

| Name                                      | Type    | Description                                                                             |
| ----------------------------------------- | ------- | --------------------------------------------------------------------------------------- |
| chainID<mark style="color:red;">\*</mark> | Integer | ID of the blockchain tokens must be exchanged on (supported networks - `v1/platforms`). |

#### Query Parameters

| Name                                               | Type    | Description                                                                                                                                                                                                        |
| -------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| fromTokenAddress<mark style="color:red;">\*</mark> | String  | Smart contract address of the sale token.                                                                                                                                                                          |
| toTokenAddress<mark style="color:red;">\*</mark>   | String  | Smart contract address of the purchase token.                                                                                                                                                                      |
| takerAddress                                       | String  | The address which will fill the quote. When provided the gas will be estimated and returned.                                                                                                                       |
| amount<mark style="color:red;">\*</mark>           | Integer | The amount of sale tokens in decimals of the token (can be taken from the method `/tokens`).                                                                                                                       |
| slippage<mark style="color:red;">\*</mark>         | Integer | The amount of slippage allowed during the actual execution of the transaction (10 = 1% slippage). If the price changes by more than this percentage, the transaction will revert. Min = 1 (0.1%), max = 500 (50%). |
| gasPrice                                           | String  | Gas price value for making a transaction in WEI (nAVAX for Avalanche) (1 GWEI = 1000000000 WEI), default value is the value high from `/gasprices`.                                                                |
| feeRecipient                                       | String  | Wallet address for receiving fees. The commission is paid from the purchase token.                                                                                                                                 |
| buyTokenPercentageFee                              | Integer | Percentage of commission from the amount of purchase tokens, is taken in favor of feeRecipient. (10 = 1%, maximum value is 500).                                                                                   |
| sellTokenPercentageFee                             | Integer | Percentage of commission from the amount of sell tokens, is taken in favor of feeRecipient. (10 = 1%, maximum value is 500).                                                                                       |
| recipientAddress                                   | String  | <p>Wallet address for receiving purchase tokens.<br>By default: sender address.</p>                                                                                                                                |
| skipValidation                                     | Boolean | <p>If TRUE: skip calldata validation</p><p></p><p><em>Default value</em> : true</p>                                                                                                                                |
| excludeAggregator                                  | String  | Exclude some aggregators from routing (add several parameters for multiple exclude).                                                                                                                               |
| includeAggregator                                  | String  | Include some aggregators from routing (add several parameters for multiple include). This parameter cannot be combined with excludedAggregators.                                                                   |
| withGas                                            | Boolean | <p>If TRUE: choose a quote based on gas.</p><p></p><p><em>Default value</em> : false</p>                                                                                                                           |

{% tabs %}
{% tab title="200: OK OK" %}
{% tabs %}
{% tab title="Example" %}

```json
{
  "amount_out_total": "1498328896581420449792",
  "estimate_gas_total": "645770",
  "token_in": "0xdac17f958d2ee523a2206206994597c13d831ec7",
  "token_out": "0x6b175474e89094c44da98b954eedeac495271d0f",
  "gas_price": "16000000000",
  "fee_recipient_amount": "0",
  "routes": [
    {
      "type": "dex",
      "protocol_name": "eth_odos",
      "percent": 100
    }
  ],
  "calldata": "0x1342555a00000000000000000000000076f4eed9fe41262669d0250b2a97db79712ad85500000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000595157560000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000000000000000000000000005124b26ec2d91fba5e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a4f17a454600000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000001e42741ef6a26c2eb653000000000000000000000000000000000000000000001e3ab50761655600000000000000000000000000000000000bdc51918c9407d2a7a0f34b68f16c26ea13ac2c9000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000059515756000000000000000000000000bdc51918c9407d2a7a0f34b68f16c26ea13ac2c90000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000000000000000000000000000000000000005f5eedb000000000000000000000000ca188796c709f3e052006a7e1e80b309ddd260ad0000000000000000000000000000000000000000000000000000000000000048010203000d0101010200ff00000000000000000000000000000000000000000048da0965ab2d2cbf1c17c09cfb5cbe67ad5b1406dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a97e0564F0AAC50000",
  "to": "0x1AAAd07998466cD3Eb8140827DDdb37570BE1e63",
  "expiry": 1693494007
}
```

{% endtab %}

{% tab title="Schema" %}

{% endtab %}
{% endtabs %}
{% endtab %}

{% tab title="204: No Content No Content" %}

{% endtab %}
{% endtabs %}

## List tokens

<mark style="color:green;">`POST`</mark> `v2/tokens/list`

Get a list of tokens with filters and pagination.

**Request sample**

cURL:

`curl -X 'POST' \` \
`'https://api.yetanotherdefi.com/v2/tokens/list' \` \
`-H 'accept: application/json' \` \
`-H 'Content-Type: application/json' \` \
`-d '{ "filter": { "symbols": [ "ETH" ] }, "paging": { "page": 1, "page_size": 100 } }'`

#### Request Body

| Name                                   | Type          | Description                                                                                                                                                                                                                                                                                               |
| -------------------------------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| filter                                 | object        | <p>Filtering occurs with an 'AND' statement between fields and an 'OR' statement between array elements. </p><p></p><p>For example: chain\_ids\[1, 2], names\[asd] == all tokens where chain\_id is "1" or "2" and name equal "asd". </p><p></p><p>Searching by all text filters is case-insensitive.</p> |
| addresses                              | string array  | Token smart contract addresses.                                                                                                                                                                                                                                                                           |
| chain\_ids                             | integer array | Blockchain network IDs.                                                                                                                                                                                                                                                                                   |
| is\_active                             | boolean       | <p>FALSE = the token is rarely used in exchanges on DEXs</p><p></p><p>If null - get only active.</p>                                                                                                                                                                                                      |
| names                                  | string array  | Full names of tokens.                                                                                                                                                                                                                                                                                     |
| symbols                                | string array  | Abbreviated names of tokens.                                                                                                                                                                                                                                                                              |
| paging                                 | object        | An object for adjusting response sizes.                                                                                                                                                                                                                                                                   |
| page<mark style="color:red;">\*</mark> | integer       | <p>Page number. </p><p></p><p>This parameter can be useful when the total sample size of tokens that meet the criteria from the filter exceeds the page size.</p><p></p><p>Can't be less than 1.</p>                                                                                                      |
| page\_size                             | integer       | <p>Response size. For example, "page\_size": 5 == get 5 tokens that meet the filtering conditions.</p><p></p><p>Max 100. If zero - unlitimited page size</p>                                                                                                                                              |

{% tabs %}
{% tab title="200: OK OK" %}
{% tabs %}
{% tab title="Example" %}

```json
{
  "tokens": [
    {
      "chainId": 1,
      "address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
      "name": "Ethereum",
      "symbol": "ETH",
      "decimals": 18,
      "logoURI": "https://cl.yad.finance/static-files/1i/1/0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee/48x48.png",
      "is_active": true,
      "priority": 1,
      "is_rfq_mode": false
    },
    {
      "chainId": 10,
      "address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
      "name": "Ethereum",
      "symbol": "ETH",
      "decimals": 18,
      "logoURI": "https://cl.yad.finance/static-files/1i/10/0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee/48x48.png",
      "is_active": true,
      "priority": 1,
      "is_rfq_mode": false
    }
  ]
}
```

{% endtab %}

{% tab title="Schema" %}

{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}
