CCIP Tools REST API (v2): for messages, lane latency, and intents, see the CCIP Tools API documentation. On-chain contracts: see the CCIP contracts and interfaces reference.

CCIP directory and configuration REST API v1

This HTTP API returns supported blockchain networks, tokens, lanes, and related configuration for CCIP across EVM, Solana, and Aptos. It is planned for deprecation soon (see the notice above). The CCIP Tools REST API (v2) covers execution-time data such as messages and intents and is the preferred surface for new work where applicable.

API overview

This reference describes:

  • Available endpoints for retrieving chain and token information
  • Chain details including IDs, selectors, and contract addresses
  • Support for multiple blockchain types (EVM, Solana, Aptos)
  • Token details including supported chains and transfer lanes
  • Supported fee tokens for cross-chain operations
  • Error handling and response formats

Use the interactive documentation below to explore and test the API endpoints.

Last Updated: March 6, 2025

API Usage Examples

Example: Fetch All Mainnet Chains

curl -X GET "https://docs.chain.link/api/ccip/v1/chains?environment=mainnet" \
  -H "accept: application/json"

Example: Filter by Chain IDs

curl -X GET "https://docs.chain.link/api/ccip/v1/chains?environment=mainnet&chainId=1,137" \
  -H "accept: application/json"

Example: Fetch Solana and EVM Chains

curl -X GET "https://docs.chain.link/api/ccip/v1/chains?environment=testnet&chainId=11155111,solana-devnet" \
  -H "accept: application/json"

Example: JavaScript API Request

// Example 1: Fetch CCIP Chains
const fetchCcipChains = async () => {
  try {
    const response = await fetch(
      'https://docs.chain.link/api/ccip/v1/chains?environment=mainnet'
    );
    const data = await response.json();
    console.log('Chain data:', data);
    
    // Access EVM chains
    const evmChains = data.data.evm;
    console.log('EVM chains:', evmChains);
    
    // Access Solana chains (if available)
    const solanaChains = data.data.solana || {};
    console.log('Solana chains:', solanaChains);

    // Access Aptos chains (if available)
    const aptosChains = data.data.aptos || {};
    console.log('Aptos chains:', aptosChains);
    
    return data;
  } catch (err) {
    console.error('Error fetching CCIP chains:', err);
  }
}

// Example 2: Fetch CCIP Tokens
const fetchCcipTokens = async () => {
  try {
    const response = await fetch(
      'https://docs.chain.link/api/ccip/v1/tokens?environment=mainnet&token_id=LINK'
    );
    const data = await response.json();
    console.log('Token data:', data);
    return data;
  } catch (err) {
    console.error('Error fetching CCIP tokens:', err);
  }
}

// Example 3: Fetch Specific Chain Types
const fetchSolanaChains = async () => {
  try {
    const response = await fetch(
      'https://docs.chain.link/api/ccip/v1/chains?environment=testnet'
    );
    const data = await response.json();
    
    // Extract just the Solana chains
    const solanaChains = data.data.solana || {};
    console.log('Solana chains:', solanaChains);
    return solanaChains;
  } catch (err) {
    console.error('Error fetching Solana chains:', err);
  }
}