Skip to main content

Solver Currencies and Swap Support

How to check if a route is supported?

To determine if a route is supported (also referred to as whether a token is supported for bridging), use the Chains API to check for an available route between a given token pair.
curl -X GET "https://api.relay.link/chains"
The response will return a list of chains, each containing supported token pairs. To verify if a route is supported, follow these steps:

Step 1: Check Token Support Level

Look for the tokenSupport field in the response for a given chain:
  • If tokenSupport is "All", then routes involving this chain as either the origin or destination are supported for tokens where Solver or DEX liquidity is available.
  • If tokenSupport is "Limited", proceed to step 2.

Step 2: Check Individual Token Support

If tokenSupport is "Limited", check the erc20Currencies and currency fields in the response. These fields contain token objects with metadata indicating whether a token supports bridging.

Step 3: Verify Bridging Support

Locate the supportsBridging field in the token object:
  • If supportsBridging is true, the token is supported for bridging.
  • If supportsBridging is false or if the token pair is not listed in erc20Currencies or currency, then the route is not supported.

Examples of Supported and Limited Token Routes

Example: All Tokens Supported

{
  "chains": [
        {
            "id": 10,
            "name": "optimism",
            "displayName": "Optimism",
            "tokenSupport": "All",
            "currency": {
                "id": "eth",
                "symbol": "ETH",
                "name": "Ether",
                "address": "0x0000000000000000000000000000000000000000",
                "decimals": 18,
                "supportsBridging": true
            },
            "erc20Currencies": [
                {
                    "id": "wbtc",
                    "symbol": "WBTC",
                    "name": "Wrapped BTC",
                    "address": "0x68f180fcce6836688e9084f035309e29bf0a2095",
                    "decimals": 8,
                    "supportsBridging": false,
                    "withdrawalFee": 0,
                    "depositFee": 0,
                    "surgeEnabled": false
                },
                {
                    "id": "usdt",
                    "symbol": "USDT",
                    "name": "Tether USD",
                    "address": "0x94b008aa00579c1307b0ef2c499ad98a8ce58e58",
                    "decimals": 6,
                    "supportsBridging": true,
                    "withdrawalFee": 0,
                    "depositFee": 0,
                    "surgeEnabled": false
                },
                {
                    "id": "dai",
                    "symbol": "DAI",
                    "name": "Dai Stablecoin",
                    "address": "0xda10009cbd5d07dd0cecc66161fc93d7c9000da1",
                    "decimals": 18,
                    "supportsBridging": false,
                    "withdrawalFee": 0,
                    "depositFee": 0,
                    "surgeEnabled": false
                },
                {
                    "id": "usdc",
                    "symbol": "USDC",
                    "name": "USD Coin",
                    "address": "0x0b2c639c533813f4aa9d7837caf62653d097ff85",
                    "decimals": 6,
                    "supportsBridging": true,
                    "supportsPermit": true,
                    "withdrawalFee": 0,
                    "depositFee": 0,
                    "surgeEnabled": false
                }
            ]
        }
  ]
}
Since the tokenSupport field is "All", routes involving this chain are supported for tokens where Solver or DEX liquidity is available.

Example: Limited Token Support

{
  "chains": [
        {
            "id": 7777777,
            "name": "zora",
            "displayName": "Zora",
            "tokenSupport": "Limited",
            "currency": {
                "id": "eth",
                "symbol": "ETH",
                "name": "Ether",
                "address": "0x0000000000000000000000000000000000000000",
                "decimals": 18,
                "supportsBridging": true
            },
            "erc20Currencies": [
                {
                    "id": "usdc",
                    "symbol": "USDzC",
                    "name": "USD Coin (Bridged from Ethereum)",
                    "address": "0xcccccccc7021b32ebb4e8c08314bd62f7c653ec4",
                    "decimals": 6,
                    "supportsBridging": true,
                    "withdrawalFee": 0,
                    "depositFee": 0,
                    "surgeEnabled": false
                }
            ]
        }
  ]
}
Here, tokenSupport is "Limited", meaning only specific tokens can be bridged. In this case, usdc is listed under erc20Currencies with supportsBridging: true, so routes involving usdc as an origin or destination token on Zora are supported.

Gas Top-Up

For full documentation on enabling gas top-up and checking support requirements, see Gas Top-Up.

API Reference

For the most up-to-date information on supported tokens and routes, always refer to the Chains API endpoint, as token support can change over time.