# CCIP Tools Documentation > Auto-generated context file for LLMs. Generated: 2026-02-16 ## Overview CCIP Tools is a TypeScript toolkit for Chainlink CCIP (Cross-Chain Interoperability Protocol). **Package:** @chainlink/ccip-sdk **CLI:** ccip-cli **API:** https://api.ccip.chain.link --- ## SDK Exports (@chainlink/ccip-sdk) ### Classes (6) - `AptosChain` - `EVMChain` - `SolanaChain` - `SuiChain` - `TONChain` - `CCIPError (+ subclasses)` ### Functions (19) - `calculateManualExecProof()` - `discoverOffRamp()` - `decodeExtraArgs()` - `encodeExtraArgs()` - `estimateReceiveExecution()` - `decodeMessage()` - `getMessagesForSender()` - `sourceToDestTokenAddresses()` - `bigIntReplacer()` - `bigIntReviver()` - `bytesToBuffer()` - `decodeAddress()` - `getDataBytes()` - `isSupportedTxHash()` - `networkInfo()` - `withRetry()` - `getCCIPExplorerLinks()` - `getCCIPExplorerUrl()` - `supportedChains()` ### Types (29) - `CCIPAPIClient` - `DEFAULT_API_BASE_URL` - `DEFAULT_API_RETRY_CONFIG` - `CCIPVersion` - `ExecutionState` - `IntentStatus` - `MessageStatus` - `CCIP_EXPLORER_BASE_URL` - `APICCIPRequestMetadata` - `APIErrorResponse` - `CCIPAPIClientContext` - `LaneLatencyResponse` - `ApiRetryConfig` - `Chain` - `ChainContext` - `ChainGetter` - `ChainStatic` - `GetBalanceOpts` - `LogFilter` - `RateLimiterState` - `RegistryTokenConfig` - `TokenInfo` - `TokenPoolConfig` - `TokenPoolRemote` - `WithRetryConfig` - `UnsignedAptosTx` - `UnsignedEVMTx` - `UnsignedSolanaTx` - `UnsignedTONTx` ### Enums (2) - `ChainFamily` - `NetworkType` --- ## Chain Methods Methods available on chain instances (EVMChain, SolanaChain, etc.): | Method | Abstract | |--------|----------| | `getBlockTimestamp(block: number | 'finalized'): Promise` | Yes | | `waitFinalized(...): Promise` | No | | `getLogs(opts: LogFilter): AsyncIterableIterator` | Yes | | `getMessagesInTx(tx: string | ChainTransaction): Promise` | No | | `typeAndVersion(address: string,): Promise<[type: string, ver...` | Yes | | `getRouterForOnRamp(onRamp: string, destChainSelector: bigint...` | Yes | | `getRouterForOffRamp(offRamp: string, sourceChainSelector: bi...` | Yes | | `getNativeTokenForRouter(router: string): Promise` | Yes | | `getOffRampsForRouter(router: string, sourceChainSelector: bi...` | Yes | | `getOnRampForRouter(router: string, destChainSelector: bigint...` | Yes | | `getOnRampForOffRamp(offRamp: string, sourceChainSelector: bi...` | Yes | | `getCommitStoreForOffRamp(offRamp: string): Promise` | Yes | | `getTokenForTokenPool(tokenPool: string): Promise` | Yes | | `getTokenInfo(token: string): Promise` | Yes | | `getBalance(opts: GetBalanceOpts): Promise` | Yes | | `getTokenAdminRegistryFor(address: string): Promise` | Yes | | `getFee(opts: Omit): Promise` | Yes | | `executeReport(...): void` | Yes | | `getCommitReport(...): void` | No | | `getLaneLatency(destChainSelector: bigint): Promise` | No | | `getFeeTokens(router: string): Promise>` | No | | `decodeMessage(log: Pick): CCIPMessage | undefi...` | No | | `decodeExtraArgs(extraArgs: BytesLike,): | (EVMExtraArgsV1 &` | No | | `encodeExtraArgs(extraArgs: ExtraArgs): string` | No | | `decodeCommits(log: Pick, lane?: Lane): CommitR...` | No | | `decodeReceipt(log: Pick): ExecutionReceipt | u...` | No | | `getAddress(bytes: BytesLike): string` | No | | `isTxHash(v: unknown): v is string` | No | | `getDestLeafHasher(lane: Lane, ctx?: WithLogger): LeafHasher` | No | | `buildMessageForDest(message: MessageInput): AnyMessage` | No | --- ## CLI Commands (7) ### `laneLatency ` (aliases: latency) Query real-time lane latency between source and destination chains | Option | Alias | Required | Description | |--------|-------|----------|-------------| | `--api-url` | - | No | Custom CCIP API URL (defaults to api.ccip.chain.link) | ### `manualExec ` (aliases: manual-exec) Execute manually pending or failed messages | Option | Alias | Required | Description | |--------|-------|----------|-------------| | `--log-index` | - | No | Log index of message to execute (if more than one in request tx) | | `--gas-limit` | `-L, compute-units` | No | Override gas limit or compute units for receivers callback (0 keeps original) | | `--tokens-gas-limit` | - | No | Override gas limit for tokens releaseOrMint calls (0 keeps original) | | `--estimate-gas-limit` | - | No | Estimate gas limit for receivers callback; argument is a % margin to add to the estimate | | `--wallet` | `-w` | No | Wallet to send transactions with; pass `ledger[:index_or_derivation]` to use Ledger USB hardware wallet, or private key in `USER_KEY` environment variable | | `--force-buffer` | - | No | Forces the usage of buffering for Solana execution. | | `--force-lookup-table` | - | No | Forces the creation & usage of an ad-hoc lookup table for Solana execution. | | `--clear-leftover-accounts` | - | No | Clears buffers (if a previous attempt was aborted) or any ALT owned by this sender. | | `--receiver-object-ids` | - | No | Receiver object IDs for Sui execution (if executing on Sui destination) | | `--sender-queue` | - | No | Execute all messages in sender queue, starting with the provided tx | | `--exec-failed` | - | No | Whether to re-execute failed messages (instead of just non-executed) in sender queue | ### `parse ` (aliases: parseBytes, parse-bytes, parseData, parse-data, ) Try to parse and print errors, revert reasons or function call or event data ### `send` Send a CCIP message from source to destination chain | Option | Alias | Required | Description | |--------|-------|----------|-------------| | `--source` | `-s` | Yes | Source chain: chainId, selector, or name | | `--dest` | `-d` | Yes | Destination chain: chainId, selector, or name | | `--router` | `-r` | Yes | Router contract address on source | | `--receiver` | `-to` | No | Receiver address on destination; defaults to sender if same chain family | | `--data` | - | No | Data payload to send (non-hex will be UTF-8 encoded) | | `--gas-limit` | `-L, compute-units` | No | Gas limit for receiver callback; defaults to ramp config | | `--estimate-gas-limit` | - | No | Estimate gas limit with % margin (e.g., 10 for +10%) | | `--allow-out-of-order-exec` | `-ooo` | No | Allow out-of-order execution (v1.5+ lanes) | | `--fee-token` | - | No | Fee token address or symbol (default: native) | | `--transfer-tokens` | `-t` | No | Token amounts to transfer: token=amount | | `--wallet` | `-w` | No | Wallet: ledger[:index] or private key | | `--token-receiver` | - | No | Solana token receiver (if different from program receiver) | | `--account` | `-receiver-object-id` | No | Solana accounts (append =rw for writable) or Sui object IDs | | `--only-get-fee` | - | No | Print fee and exit | | `--only-estimate` | - | No | Print gas estimate and exit | | `--approve-max` | - | No | Approve max token amount instead of exact | | `--wait` | - | No | Wait for execution on destination | ### `show ` Show details of a CCIP request | Option | Alias | Required | Description | |--------|-------|----------|-------------| | `--log-index` | - | No | Pre-select a message request by logIndex, if more than one in tx; by default, a selection menu is shown | | `--id-from-source` | - | No | Search by messageId instead of txHash; requires `[onRamp@]sourceNetwork` (onRamp address may be required in some chains) | | `--wait` | - | No | Wait for (first) execution | ### `getSupportedTokens` (aliases: get-supported-tokens) List supported tokens in a given Router/OnRamp/TokenAdminRegistry, and/or show info about token/pool | Option | Alias | Required | Description | |--------|-------|----------|-------------| | `--network` | `-n` | Yes | Source network: chainId or name (e.g., ethereum-mainnet) | | `--address` | `-a` | Yes | Router/OnRamp/TokenAdminRegistry/TokenPool contract address | | `--token` | `-t` | No | Token address to query (pre-selects from list if address is a registry) | | `--fee-tokens` | - | No | List fee tokens instead of transferable tokens | ### `token` Query token balance for an address | Option | Alias | Required | Description | |--------|-------|----------|-------------| | `--network` | `-n` | Yes | Network: chainId or name (e.g., ethereum-mainnet, solana-devnet) | | `--holder` | `-H` | Yes | Wallet address to query balance for | | `--token` | `-t` | No | Token address (omit for native token balance) | --- ## REST API Endpoints (7) Base URL: `https://api.ccip.chain.link` | Method | Path | Summary | |--------|------|---------| | `GET` | `/messages/{messageId}` | Retrieve a single message | | `GET` | `/messages` | Retrieve multiple messages with filtering | | `GET` | `/lanes/latency` | Retrieve lane latency | | `GET` | `/verifiers` | Retrieve available verifiers | | `POST` | `/intents/quotes` | Create quote for intent | | `GET` | `/intents/tx/{txHash}` | Get all intent statuses for a transaction | | `GET` | `/intents/id/{intentId}` | Get intent status by ID | --- ## Documentation Structure ### SDK Guides - [Browser Setup](/sdk/guides/browser-setup) - [Error Handling](/sdk/guides/error-handling) - [Error Reference](/sdk/guides/error-reference) - [Manual Execution](/sdk/guides/manual-execution) - [Multi-Chain](/sdk/guides/multi-chain) - [Querying Data](/sdk/guides/querying-data) - [Sending Messages](/sdk/guides/sending-messages) - [Token Pools](/sdk/guides/token-pools) - [Tracking Messages](/sdk/guides/tracking-messages) - [Viem Integration](/sdk/guides/viem-integration) ### SDK Classes (120 files) Base path: `/sdk/classes/` ### SDK Functions (24 files) Base path: `/sdk/functions/` ### SDK Types (44 files) Base path: `/sdk/type-aliases/` ### CLI - [Configuration](/cli/configuration) - [CCIP CLI](/cli/index) - [laneLatency](/cli/lane-latency) - [manualExec](/cli/manual-exec) - [parse](/cli/parse) - [send](/cli/send) - [show](/cli/show) - [getSupportedTokens](/cli/supported-tokens) - [token](/cli/token) - [Troubleshooting](/cli/troubleshooting) ### CLI Guides - [Transfer Data](/cli/guides/data-transfer-workflow) - [Debugging Failed Messages](/cli/guides/debugging-workflow) - [Token Transfer](/cli/guides/token-transfer-workflow) - [Transfer Tokens and Data](/cli/guides/tokens-and-data-workflow) ### API Endpoints - [CCIP API](/api/ccip-api.info) - [Get intent status by ID](/api/get-intent-by-id.api) - [Create quote for intent](/api/get-intent-quote.api) - [Get all intent statuses for a transaction](/api/get-intents-by-tx-hash.api) - [Retrieve lane latency](/api/get-lane-latency.api) - [Retrieve a single message](/api/get-message-by-id.api) - [Retrieve multiple messages with filtering](/api/get-messages.api) - [Retrieve available verifiers](/api/get-verifiers.api) --- ## Links - GitHub: https://github.com/smartcontractkit/ccip-tools-ts - CCIP Explorer: https://ccip.chain.link - API Docs: https://api.ccip.chain.link/api-docs