Discover what you can move

Lists the chains and tokens available to move between, flagging anything unavailable with a reason code; token lists are paginated, chains are not. Anchor all four of originChainId/originToken/destinationChainId/destinationToken to get fundingMethods and amountTypes — availability means selectable, not priceable, and POST /v1/quotes is the binding check.

GET
/v1/capabilities

Authorization

bearerAuth
AuthorizationBearer <token>

API key for authentication.

In: header

Query Parameters

include?array<>

Sub-collections to include. Defaults to [chains, tokens].

originChainId?integer
Range1 <= value
originToken?string

Token address or symbol. Requires originChainId — the same symbol exists on many chains.

destinationChainId?integer
Range1 <= value
destinationToken?string

Token address or symbol. Requires destinationChainId — the same symbol exists on many chains.

reachableOnly?boolean

Restrict each side's token list to tokens available from the opposite anchor. Filters on the available flag exactly, so it also drops a row that is reachable but carries no_price_feed — see available for the full predicate.

search?string

Free-text match on token symbol, name, or address.

capabilities.fundingMethods?array<>

The funding methods your client can execute. Read as any-of -- listing approval,permit2 means either works, not that both are required.

Tokens you cannot fund come back available: false with unsupported_funding_method, so you never surface a route you have no way to execute. Omit it to narrow nothing.

wallets?array<string>

One address per namespace; used to resolve indicative wallet balances.

limit?integer

Page size per token side. Values above 100 are rejected.

Default10
Range1 <= value <= 100
originCursor?string

Opaque cursor from pagination.origin.nextCursor, to page through the origin token list.

If the underlying set changes between pages the request fails with 409 conflict.cursor_expired -- start again from the first page.

destinationCursor?string

Opaque cursor from pagination.destination.nextCursor, to page through the destination token list.

If the underlying set changes between pages the request fails with 409 conflict.cursor_expired -- start again from the first page.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://api.staging.across.to/v1/capabilities?include=chains&include=tokens&originChainId=42161&originToken=0xaf88d065e77c8cC2239327C5EDb3A432268e5831&destinationChainId=8453&destinationToken=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&limit=5"
{
  "meta": {
    "versionedAt": "2026-08-18T21:53:03.477Z",
    "catalogSource": "live",
    "balances": "not_requested"
  },
  "originTokens": [
    {
      "chainId": 42161,
      "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
      "symbol": "USDC",
      "name": "USD Coin",
      "decimals": 6,
      "logoUrl": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png",
      "priceUsd": 0.999736,
      "popular": true,
      "available": true,
      "unavailableReasons": [],
      "fundingMethods": [
        "erc3009",
        "permit2",
        "approval"
      ],
      "verified": true
    }
  ],
  "destinationTokens": [
    {
      "chainId": 8453,
      "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "symbol": "USDC",
      "name": "USD Coin",
      "decimals": 6,
      "logoUrl": "https://ethereum-optimism.github.io/data/USDC/logo.png",
      "priceUsd": 0.999736,
      "popular": true,
      "available": true,
      "unavailableReasons": [],
      "fundingMethods": [
        "erc3009",
        "permit2",
        "approval"
      ],
      "verified": true
    }
  ],
  "pagination": {
    "origin": {
      "total": 1
    },
    "destination": {
      "total": 1
    }
  },
  "chains": [
    {
      "chainId": 1,
      "name": "mainnet",
      "displayName": "Mainnet",
      "namespace": "evm",
      "explorerUrl": "https://etherscan.io",
      "logoUrl": "https://alexandria.across.to/assets/chains/mainnet.svg",
      "nativeToken": {
        "symbol": "ETH",
        "decimals": 18
      },
      "publicRpcUrl": "https://eth.llamarpc.com",
      "popular": true,
      "canBeOrigin": true,
      "canBeDestination": true
    },
    {
      "chainId": 8453,
      "name": "base",
      "displayName": "Base",
      "namespace": "evm",
      "explorerUrl": "https://basescan.org",
      "logoUrl": "https://alexandria.across.to/assets/chains/base.svg",
      "nativeToken": {
        "symbol": "ETH",
        "decimals": 18
      },
      "publicRpcUrl": "https://mainnet.base.org",
      "popular": true,
      "canBeOrigin": true,
      "canBeDestination": true
    },
    {
      "chainId": 130,
      "name": "unichain",
      "displayName": "Unichain",
      "namespace": "evm",
      "explorerUrl": "https://uniscan.xyz",
      "logoUrl": "https://alexandria.across.to/assets/chains/unichain.svg",
      "nativeToken": {
        "symbol": "ETH",
        "decimals": 18
      },
      "publicRpcUrl": "https://mainnet.unichain.org/",
      "popular": true,
      "canBeOrigin": true,
      "canBeDestination": true
    },
    {
      "chainId": 42161,
      "name": "arbitrum-one",
      "displayName": "Arbitrum One",
      "namespace": "evm",
      "explorerUrl": "https://arbiscan.io",
      "logoUrl": "https://alexandria.across.to/assets/chains/arbitrum.svg",
      "nativeToken": {
        "symbol": "ETH",
        "decimals": 18
      },
      "publicRpcUrl": "https://arb1.arbitrum.io/rpc",
      "popular": true,
      "canBeOrigin": true,
      "canBeDestination": true
    },
    {
      "chainId": 43114,
      "name": "avalanche",
      "displayName": "Avalanche",
      "namespace": "evm",
      "explorerUrl": "https://snowscan.xyz",
      "logoUrl": "https://alexandria.across.to/assets/chains/avalanche.svg",
      "nativeToken": {
        "symbol": "AVAX",
        "decimals": 18
      },
      "publicRpcUrl": "https://api.avax.network/ext/bc/C/rpc",
      "popular": false,
      "canBeOrigin": true,
      "canBeDestination": true
    },
    {
      "chainId": 56,
      "name": "bnb-smart-chain",
      "displayName": "BNB Smart Chain",
      "namespace": "evm",
      "explorerUrl": "https://bscscan.com",
      "logoUrl": "https://alexandria.across.to/assets/chains/bsc.svg",
      "nativeToken": {
        "symbol": "BNB",
        "decimals": 18
      },
      "publicRpcUrl": "https://bsc-dataseed1.binance.org",
      "popular": false,
      "canBeOrigin": true,
      "canBeDestination": true
    },
    {
      "chainId": 1337,
      "name": "hypercore",
      "displayName": "HyperCore",
      "namespace": "evm",
      "explorerUrl": "https://app.hyperliquid.xyz/explorer",
      "logoUrl": "https://alexandria.across.to/assets/chains/hypercore.svg",
      "nativeToken": {
        "symbol": "HYPE",
        "decimals": 18
      },
      "publicRpcUrl": "https://api.hyperliquid.xyz",
      "popular": false,
      "canBeOrigin": true,
      "canBeDestination": true
    },
    {
      "chainId": 999,
      "name": "hyperevm",
      "displayName": "HyperEVM",
      "namespace": "evm",
      "explorerUrl": "https://hyperevmscan.io/",
      "logoUrl": "https://alexandria.across.to/assets/chains/hyperevm.svg",
      "nativeToken": {
        "symbol": "HYPE",
        "decimals": 18
      },
      "publicRpcUrl": "https://rpc.hyperliquid.xyz/evm",
      "popular": false,
      "canBeOrigin": true,
      "canBeDestination": true
    },
    {
      "chainId": 57073,
      "name": "ink",
      "displayName": "Ink",
      "namespace": "evm",
      "explorerUrl": "https://explorer.inkonchain.com",
      "logoUrl": "https://alexandria.across.to/assets/chains/ink.svg",
      "nativeToken": {
        "symbol": "ETH",
        "decimals": 18
      },
      "publicRpcUrl": "https://rpc-gel.inkonchain.com",
      "popular": false,
      "canBeOrigin": true,
      "canBeDestination": true
    },
    {
      "chainId": 2337,
      "name": "lighter",
      "displayName": "Lighter",
      "namespace": "evm",
      "explorerUrl": "https://app.lighter.xyz/explorer",
      "logoUrl": "https://alexandria.across.to/assets/chains/lighter.svg",
      "nativeToken": {
        "symbol": "LIT",
        "decimals": 18
      },
      "publicRpcUrl": "https://mainnet.zklighter.elliot.ai",
      "popular": false,
      "canBeOrigin": false,
      "canBeDestination": true
    },
    {
      "chainId": 59144,
      "name": "linea",
      "displayName": "Linea",
      "namespace": "evm",
      "explorerUrl": "https://lineascan.build",
      "logoUrl": "https://alexandria.across.to/assets/chains/linea.svg",
      "nativeToken": {
        "symbol": "ETH",
        "decimals": 18
      },
      "publicRpcUrl": "https://rpc.linea.build",
      "popular": false,
      "canBeOrigin": true,
      "canBeDestination": true
    },
    {
      "chainId": 4326,
      "name": "megaeth",
      "displayName": "MegaETH",
      "namespace": "evm",
      "explorerUrl": "https://megaeth.blockscout.com",
      "logoUrl": "https://alexandria.across.to/assets/chains/megaeth.svg",
      "nativeToken": {
        "symbol": "ETH",
        "decimals": 18
      },
      "publicRpcUrl": "https://mainnet.megaeth.com/rpc",
      "popular": false,
      "canBeOrigin": true,
      "canBeDestination": true
    },
    {
      "chainId": 143,
      "name": "monad",
      "displayName": "Monad",
      "namespace": "evm",
      "explorerUrl": "https://monadvision.com",
      "logoUrl": "https://alexandria.across.to/assets/chains/monad.svg",
      "nativeToken": {
        "symbol": "MON",
        "decimals": 18
      },
      "publicRpcUrl": "https://rpc-mainnet.monadinfra.com",
      "popular": false,
      "canBeOrigin": true,
      "canBeDestination": true
    },
    {
      "chainId": 10,
      "name": "optimism",
      "displayName": "Optimism",
      "namespace": "evm",
      "explorerUrl": "https://optimistic.etherscan.io",
      "logoUrl": "https://alexandria.across.to/assets/chains/optimism.svg",
      "nativeToken": {
        "symbol": "ETH",
        "decimals": 18
      },
      "publicRpcUrl": "https://mainnet.optimism.io",
      "popular": false,
      "canBeOrigin": true,
      "canBeDestination": true
    },
    {
      "chainId": 9745,
      "name": "plasma",
      "displayName": "Plasma",
      "namespace": "evm",
      "explorerUrl": "https://plasmascan.to",
      "logoUrl": "https://alexandria.across.to/assets/chains/plasma.svg",
      "nativeToken": {
        "symbol": "XPL",
        "decimals": 18
      },
      "publicRpcUrl": "https://rpc.plasma.to",
      "popular": false,
      "canBeOrigin": true,
      "canBeDestination": true
    },
    {
      "chainId": 137,
      "name": "polygon",
      "displayName": "Polygon",
      "namespace": "evm",
      "explorerUrl": "https://polygonscan.com",
      "logoUrl": "https://alexandria.across.to/assets/chains/polygon.svg",
      "nativeToken": {
        "symbol": "POL",
        "decimals": 18
      },
      "publicRpcUrl": "https://polygon-rpc.com",
      "popular": false,
      "canBeOrigin": true,
      "canBeDestination": true
    },
    {
      "chainId": 4663,
      "name": "robinhood",
      "displayName": "Robinhood",
      "namespace": "evm",
      "explorerUrl": "https://robinhoodchain.blockscout.com",
      "logoUrl": "https://alexandria.across.to/assets/chains/robinhood.svg",
      "nativeToken": {
        "symbol": "ETH",
        "decimals": 18
      },
      "publicRpcUrl": "https://rpc.mainnet.chain.robinhood.com",
      "popular": false,
      "canBeOrigin": true,
      "canBeDestination": true
    },
    {
      "chainId": 4217,
      "name": "tempo",
      "displayName": "Tempo",
      "namespace": "evm",
      "explorerUrl": "https://explore.mainnet.tempo.xyz",
      "logoUrl": "https://alexandria.across.to/assets/chains/tempo.svg",
      "nativeToken": {
        "symbol": "pathUSD",
        "decimals": 6
      },
      "publicRpcUrl": "https://rpc.tempo.xyz",
      "popular": false,
      "canBeOrigin": true,
      "canBeDestination": true
    },
    {
      "chainId": 728126428,
      "name": "tron",
      "displayName": "TRON",
      "namespace": "tron",
      "explorerUrl": "https://tronscan.org",
      "logoUrl": "https://alexandria.across.to/assets/chains/tron.svg",
      "nativeToken": {
        "symbol": "TRX",
        "decimals": 6
      },
      "publicRpcUrl": "https://api.trongrid.io/jsonrpc",
      "popular": false,
      "canBeOrigin": true,
      "canBeDestination": true
    },
    {
      "chainId": 480,
      "name": "world-chain",
      "displayName": "World Chain",
      "namespace": "evm",
      "explorerUrl": "https://worldchain-mainnet-explorer.alchemy.com",
      "logoUrl": "https://alexandria.across.to/assets/chains/world-chain.svg",
      "nativeToken": {
        "symbol": "ETH",
        "decimals": 18
      },
      "publicRpcUrl": "https://worldchain-mainnet.g.alchemy.com/public",
      "popular": false,
      "canBeOrigin": true,
      "canBeDestination": true
    }
  ],
  "capabilities": {
    "fundingMethods": [
      "erc3009",
      "permit2",
      "approval"
    ],
    "amountTypes": [
      "exact_input",
      "exact_output",
      "min_output"
    ],
    "limits": {
      "max": {
        "token": "10000000000000",
        "usd": 9999350
      },
      "validUntil": "2026-08-18T21:57:03.477Z"
    }
  }
}
{
  "error": {
    "type": "request",
    "code": "request.invalid_param",
    "message": "limit must be an integer between 1 and 100",
    "param": "limit",
    "requestId": "6ovgro9uc2nqktp2uurgto7ino"
  }
}
{
  "code": "unauthenticated",
  "message": "the request does not have valid authentication credentials for the operation",
  "details": null
}
{
  "code": "unauthenticated",
  "message": "the request does not have valid authentication credentials for the operation",
  "details": {}
}
{
  "error": {
    "type": "request",
    "code": "request.invalid_json",
    "message": "string",
    "param": "string",
    "requestId": "string",
    "details": {
      "balanceCheck": {
        "chainId": 0,
        "token": "string",
        "requiredAmount": "string",
        "observedBalance": "string",
        "blockNumber": 0,
        "observedAt": "2019-08-24T14:15:22Z"
      }
    }
  }
}