# Coin Rates API

Retrieves runtime exchange rates and asset/network metadata. USD is the fiat
baseline used by this response, but consumers must locate entries by
`coin.symbol` rather than depending on array order. Assets without usable rate
data may be absent. Rates, quotes, networks, limits, fees, and precision can
change without a schema version change.

## Get Coin Rates {#get-coin-rates}

### Request

```
GET /v1/get-coin-rate
```

### Example Response

This is an illustrative response shape, not a static price or availability
contract.

```json
{
  "status": "success",
  "data": [
    {
      "coin": {
        "symbol": "usd",
        "name": "US Dollar",
        "type": "fiat"
      },
      "quotes": [
        {
          "currency_to": "usdt",
          "price": "1",
          "type": "crypto"
        },
        {
          "currency_to": "usdc",
          "price": "1",
          "type": "crypto"
        },
        {
          "currency_to": "trx",
          "price": "8.333333333333",
          "type": "crypto"
        },
        {
          "currency_to": "bnb",
          "price": "0.001723692148",
          "type": "crypto"
        },
        {
          "currency_to": "eth",
          "price": "0.000320466599",
          "type": "crypto"
        }
      ],
      "networks": []
    },
    {
      "coin": {
        "symbol": "usdt",
        "name": "Tether",
        "type": "crypto"
      },
      "quotes": [
        {
          "currency_to": "usd",
          "price": "1",
          "type": "fiat"
        },
        {
          "currency_to": "trx",
          "price": "8.3167",
          "type": "crypto"
        },
        {
          "currency_to": "bnb",
          "price": "0.00172",
          "type": "crypto"
        },
        {
          "currency_to": "usdc",
          "price": "1",
          "type": "crypto"
        }
      ],
      "networks": [
        {
          "network": "tron",
          "name": "TRON (TRC-20)",
          "type": "crypto",
          "deposit_enabled": true,
          "withdraw_enabled": true,
          "min_deposit": "5",
          "min_withdrawal": "5",
          "max_withdrawal": "1000",
          "network_fee": "1.40",
          "decimals": 6
        }
      ]
    },
    {
      "coin": {
        "symbol": "eth",
        "name": "Ethereum",
        "type": "crypto"
      },
      "quotes": [
        {
          "currency_to": "usd",
          "price": "3120.45",
          "type": "fiat"
        },
        {
          "currency_to": "bnb",
          "price": "10.215",
          "type": "crypto"
        },
        {
          "currency_to": "usdt",
          "price": "3120.45",
          "type": "crypto"
        }
      ],
      "networks": [
        {
          "network": "eth",
          "name": "Ethereum (ERC-20)",
          "type": "crypto",
          "deposit_enabled": true,
          "withdraw_enabled": true,
          "min_deposit": "0.001",
          "min_withdrawal": "0.003",
          "max_withdrawal": "10",
          "network_fee": "0.0002",
          "decimals": 18
        }
      ]
    }
  ]
}
```

### Response Field Descriptions

| Field | Type | Description |
|-------|------|-------------|
| `coin.symbol` | string | Coin ticker symbol |
| `coin.name` | string | Human readable name |
| `coin.type` | string | `crypto` or `fiat`, describing the asset class |
| `quotes[].currency_to` | string | Currency code the rate is quoted against (e.g. `usd`, `usdt`, `trx`) |
| `quotes[].price` | string | Price quoted against `currency_to` |
| `quotes[].type` | string | Indicates whether the quote currency is `fiat` or `crypto` |
| `networks[].network` | string | Network identifier (e.g. `tron`, `eth`, `bsc`) |
| `networks[].name` | string | Human-readable network name and token standard |
| `networks[].type` | string | Asset type on the network (`crypto` or `fiat`) |
| `networks[].deposit_enabled` | boolean | Indicates if deposits are currently allowed |
| `networks[].withdraw_enabled` | boolean | Indicates if withdrawals are currently allowed |
| `networks[].min_deposit` | string|null | Minimum deposit amount accepted on the network |
| `networks[].min_withdrawal` | string|null | Minimum withdrawal amount allowed |
| `networks[].max_withdrawal` | string|null | Maximum withdrawal amount allowed |
| `networks[].network_fee` | string|null | Network fee charged in coin units |
| `networks[].decimals` | integer|null | Number of decimals supported on-chain |

## Get Supported Coins & Fee {#get-supported-coins-and-fee}

Use this public endpoint for runtime asset discovery. It excludes hidden pairs
and pairs where both deposits and withdrawals are disabled. Individual write
endpoints still own final pair/amount validation, so handle a later `422` even
after successful discovery.

### Request

```
GET /v1/coins-and-fee
```

### Example Response

Values below are examples only. Do not copy them into a closed enum or fee
table.

```json
{
  "status": "success",
  "data": {
    "coins": [
      {
        "coin": {
          "symbol": "USDT",
          "label": "USDT"
        },
        "networks": [
          {
            "network": "TRON",
            "title": "TRON (TRC-20)",
            "network_fee": "1.4",
            "service_fee": "0.45",
            "min_withdrawal": "5"
          },
          {
            "network": "ETH",
            "title": "Ethereum (ERC-20)",
            "network_fee": "1",
            "service_fee": "0.45",
            "min_withdrawal": "5"
          }
        ]
      },
      {
        "coin": {
          "symbol": "BTC",
          "label": "BTC"
        },
        "networks": [
          {
            "network": "BITCOIN",
            "title": "Bitcoin",
            "network_fee": "0.000016",
            "service_fee": "0.45",
            "min_withdrawal": "0.0001"
          }
        ]
      }
    ]
  }
}
```

### Response Field Descriptions

| Field | Type | Description |
|-------|------|-------------|
| `data.coins` | array | Supported assets grouped by coin symbol |
| `data.coins[].coin.symbol` | string | Uppercase coin symbol |
| `data.coins[].coin.label` | string | Display label for the coin |
| `data.coins[].networks` | array | Enabled networks for the coin |
| `data.coins[].networks[].network` | string | Uppercase network code |
| `data.coins[].networks[].title` | string | Human-readable network name |
| `data.coins[].networks[].network_fee` | string|null | Network fee charged in coin units |
| `data.coins[].networks[].service_fee` | string | Service fee percentage applied to the asset |
| `data.coins[].networks[].min_withdrawal` | string|null | Minimum withdrawal amount for the asset on that network |

The route advertises a public cache lifetime of 900 seconds. Respect that cache
window, refresh before presenting a write flow when practical, and let the
write endpoint remain authoritative.
