CCIP API Documentation v1

The Cross-Chain Interoperability Protocol (CCIP) API provides comprehensive information about supported blockchain networks, tokens, and their configurations across multiple blockchain families including EVM, Solana, and Aptos.

API Overview

This documentation provides details about:

  • 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 VM chains (if available)
    const solanaChains = data.data.svm || {};
    console.log('Solana chains:', solanaChains);
    
    // Access Move VM chains (if available)
    const mvmChains = data.data.mvm || {};
    console.log('Aptos chains:', mvmChains);
    
    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.svm || {};
    console.log('Solana chains:', solanaChains);
    return solanaChains;
  } catch (err) {
    console.error('Error fetching Solana chains:', err);
  }
}