# Get supported tokens and chains

{% hint style="info" %}
See all our supported chains and tokens at [https://app.squidrouter.com](https://v2.app.squidrouter.com)
{% endhint %}

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

```typescript
// access using squid.tokens
const fromToken = squid.tokens.find(
  (t) =>
    t.symbol.toLocaleLowerCase() === "USDC" && t.chainId === "1"
);

// access using squid.chains
const fromChain = squid.chains.find(
  (c) =>
    c.chainId === "1"
);

```

{% endtab %}

{% tab title="API" %}

```typescript
const getChains = async () => {
	const result = await axios.get('https://v2.api.squidrouter.com/v2/chains', {
		headers: {
			'x-integrator-id': integratorId,
		},
	});
	return result.data;
};

const getTokens = async () => {
	const result = await axios.get('https://v2.api.squidrouter.com/v2/tokens', {
		headers: {
			'x-integrator-id': integratorId,
		},
	});
	return result.data;
};
```

{% endtab %}

{% tab title="Widgets" %}
Every widget will automatically pull down all Squid's supported tokens and chains.

You can limit the available tokens and chains using this guide:[Default Chains and Tokens](/old-v2-documentation-deprecated/add-a-widget/widget/customization-guide/default-chains-and-tokens.md)
{% endtab %}
{% endtabs %}

***

## POST Endpoints: Dynamic Field Selection

The API also exposes POST versions of `/v2/tokens`, `/v2/chains`, and `/v2/sdk-info` that let you request only the fields you need, reducing payload size and improving bandwidth efficiency. The existing GET endpoints remain unchanged.

{% hint style="info" %}
**PR**: [#1876 - Update sdk-info, tokens, and chains controllers](https://github.com/0xsquid/squid-api/pull/1876)
{% endhint %}

### How It Works

* Send a `fields` array in the POST body to specify which fields to return.
* Fields containing dots (e.g. `chain.internalRpc`) are **rejected** with a `400` error to prevent nested property access.
* If the requested fields don't exist on an object, the empty object is excluded from the response.

### POST `/v2/tokens`

```json
// Request
{ "fields": ["symbol", "address", "chainId", "decimals", "usdPrice"] }

// Response
{
  "tokens": [
    { "symbol": "ETH", "address": "0xeee...eee", "chainId": "1", "decimals": 18, "usdPrice": 3200.50 }
  ]
}
```

Optional query parameters (e.g. `?chainId=1`) work the same as the GET endpoint.

### POST `/v2/chains`

```json
// Request
{ "fields": ["chainId", "chainName", "networkName", "chainIconURI"] }

// Response (single chain via ?chainId=1)
{
  "chain": { "chainId": "1", "chainName": "Ethereum", "networkName": "ethereum", "chainIconURI": "https://..." }
}

// Response (all chains)
{
  "chains": [
    { "chainId": "1", "chainName": "Ethereum", "networkName": "ethereum" }
  ]
}
```

### POST `/v2/sdk-info`

Requires **both** `tokenFields` and `chainFields`:

```json
// Request
{
  "tokenFields": ["symbol", "address", "chainId", "decimals"],
  "chainFields": ["chainId", "chainName", "chainIconURI"]
}

// Response
{
  "chains": [{ "chainId": "1", "chainName": "Ethereum", "chainIconURI": "https://..." }],
  "tokens": [{ "symbol": "ETH", "address": "0xeee...", "chainId": "1", "decimals": 18 }],
  "axelarscanURL": "https://axelarscan.io/",
  "isInMaintenanceMode": false
}
```

### Error Responses

All POST endpoints return `400 BAD_REQUEST` for validation failures:

| Scenario                                        | Error Message                                                                  |
| ----------------------------------------------- | ------------------------------------------------------------------------------ |
| Missing or empty `fields` array                 | Fields array is required and must contain at least one field                   |
| All fields are blocked                          | All requested fields are blocked. Please provide at least one valid field.     |
| Nested field paths (dots)                       | Nested field paths are not allowed. Please provide only top-level field names. |
| sdk-info missing `tokenFields` or `chainFields` | Both tokenFields and chainFields must be provided with at least one field each |

### Behavior Notes

* **Sorting preserved** — field filtering applies after sorting, so ordering is correct regardless of selected fields.
* **Feature flags enforced** — chain/token access restrictions are applied before field filtering.
* **Future-proof** — new fields on data models are automatically available via POST (unless blocked).

***

### Supported Chains

| networkIdentifier | chainId             | type    |
| ----------------- | ------------------- | ------- |
| ethereum          | 1                   | evm     |
| arbitrum          | 42161               | evm     |
| avalanche         | 43114               | evm     |
| optimism          | 10                  | evm     |
| polygon           | 137                 | evm     |
| base              | 8453                | evm     |
| linea             | 59144               | evm     |
| binance           | 56                  | evm     |
| mantle            | 5000                | evm     |
| fantom            | 250                 | evm     |
| moonbeam          | 1284                | evm     |
| celo              | 42220               | evm     |
| scroll            | 534352              | evm     |
| kava              | 2222                | evm     |
| filecoin          | 314                 | evm     |
| blast             | 81457               | evm     |
| fraxtal           | 252                 | evm     |
| immutable         | 13371               | evm     |
| osmosis           | osmosis-1           | cosmos  |
| crescent          | crescent-1          | cosmos  |
| kujira            | kaiyo-1             | cosmos  |
| terra-2           | phoenix-1           | cosmos  |
| juno              | juno-1              | cosmos  |
| umee              | umee-1              | cosmos  |
| comdex            | comdex-1            | cosmos  |
| evmos             | evmos\_9001-2       | cosmos  |
| regen             | regen-1             | cosmos  |
| stargaze          | stargaze-1          | cosmos  |
| assetmantle       | mantle-1            | cosmos  |
| axelarnet         | axelar-dojo-1       | cosmos  |
| cosmoshub         | cosmoshub-4         | cosmos  |
| injective         | injective-1         | cosmos  |
| agoric            | agoric-3            | cosmos  |
| fetch             | fetchhub-4          | cosmos  |
| ki                | kichain-2           | cosmos  |
| noble             | noble-1             | cosmos  |
| dydx              | dydx-mainnet-1      | cosmos  |
| neutron           | neutron-1           | cosmos  |
| carbon            | carbon-1            | cosmos  |
| sei               | pacific-1           | cosmos  |
| secret-snip       | secret-4            | cosmos  |
| stride            | stride-1            | cosmos  |
| acre              | acre\_9052-1        | cosmos  |
| archway           | archway-1           | cosmos  |
| bitcanna          | bitcanna-1          | cosmos  |
| bitsong           | bitsong-2b          | cosmos  |
| cheqd             | cheqd-mainnet-1     | cosmos  |
| celestia          | celestia            | cosmos  |
| coreum            | coreum-mainnet-1    | cosmos  |
| decentr           | mainnet-3           | cosmos  |
| desmos            | desmos-mainnet      | cosmos  |
| dymension         | dymension\_1100-1   | cosmos  |
| irisnet           | irishub-1           | cosmos  |
| impacthub         | ixo-5               | cosmos  |
| jackal            | jackal-1            | cosmos  |
| lumnetwork        | lum-network-1       | cosmos  |
| likecoin          | likecoin-mainnet-2  | cosmos  |
| kava-ibc          | kava\_2222-10       | cosmos  |
| nolus             | pirin-1             | cosmos  |
| akash             | akashnet-2          | cosmos  |
| chihuahua         | chihuahua-1         | cosmos  |
| cronos            | cronosmainnet\_25-1 | cosmos  |
| gravitybridge     | gravity-bridge-3    | cosmos  |
| mars              | mars-1              | cosmos  |
| migaloo           | migaloo-1           | cosmos  |
| persistence       | core-1              | cosmos  |
| omniflixhub       | omniflixhub-1       | cosmos  |
| quicksilver       | quicksilver-2       | cosmos  |
| sommelier         | sommelier-3         | cosmos  |
| terra             | columbus-5          | cosmos  |
| teritori          | teritori-1          | cosmos  |
| sentinel          | sentinelhub-2       | cosmos  |
| humans            | humans\_1089-1      | cosmos  |
| c4e               | perun-1             | cosmos  |
| saga              | ssc-1               | cosmos  |
| nibiru            | cataclysm-1         | cosmos  |
| bitcoin           | bitcoin             | bitcoin |
| lava              | lava-mainnet-1      | cosmos  |
| kyve              | kyve-1              | cosmos  |
| solana            | solana-mainnet-beta | solana  |
| xion              | xion-mainnet-1      | cosmos  |
| berachain         | 80094               | evm     |
| saga\_evm         | 5464                | cosmos  |
| elys              | elys-1              | cosmos  |
| allora            | allora-mainnet-1    | cosmos  |
| flippandomainnet  | 2.73727E+15         | cosmos  |
| soundmoney        | 2.73593E+15         | cosmos  |
| ngmi              | 2.71277E+15         | cosmos  |
| babylon           | bbn-1               | cosmos  |
| sui               | sui-mainnet         | sui     |
| gnosis            | 100                 | evm     |
| sonic             | 146                 | evm     |
| soneium           | 1868                | evm     |
| peaq              | 3338                | evm     |
| hyper-evm         | 999                 | evm     |
| xrpl-evm          | 1440000             | evm     |
| xrpl              | xrpl-mainnet        | xrpl    |
| stellar           | stellar-mainnet     | stellar |


---

# 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.squidrouter.com/api-and-sdk-integration/key-concepts/get-supported-tokens-and-chains.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.
