Skip to main content
Version: v2

Message

originstringnullable

Address of the user account that originally initiated the transaction (tx.origin) on the source chain. Format depends on source chain family (20-byte hex for EVM, base58 for Solana).

Example: 0x742d35Cc6634C0532925a3b8D5c8C22C5B2D8a3E
messageIdstringrequired

Globally unique message identifier derived from a hash of:

  • Source/destination chain selectors and onRamp address (for lane uniqueness)
  • Message content (sender, receiver, data, tokens, fees, extraArgs)
  • Sequence number and nonce (for ordering and replay protection) This ensures global uniqueness across all CCIP lanes and prevents replay attacks.

Possible values: Value must match regular expression ^0x[a-fA-F0-9]{64}$

Example: 0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
senderstringrequired

Address of the account that called ccipSend() on the source chain router. Format depends on source chain family (20-byte hex for EVM, base58 for Solana).

Example: 0x742d35Cc6634C0532925a3b8D5c8C22C5B2D8a3E
receiverstringrequired

Address of the intended recipient contract/account on the destination chain. Format depends on destination chain family. Encoded as bytes in the message.

Example: 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM
statusstringrequired

The current status of the CCIP message through its lifecycle:

  • SENT: Transaction submitted and waiting for source chain confirmation
  • SOURCE_FINALIZED: Transaction confirmed on source chain and ready for CCIP processing
  • COMMITTED: Message committed to destination chain's commit store and staged for execution
  • BLESSED: Message approved by CCIP oracle network and ready for execution
  • SUCCESS: Message successfully executed on destination chain
  • FAILED: Message execution failed but can be manually retried
Example: SUCCESS
sourceNetworkInfo objectrequired

Information about the blockchain network where the message originated

namestringrequired

Human-readable name identifier for the blockchain network. Used for display purposes and network identification.

Example: ethereum-mainnet
chainSelectorstringrequired

The CCIP chain selector identifier for the network. This is a uint64 value represented as a string. See the official chain selectors repository: https://github.com/smartcontractkit/chain-selectors/blob/v1.0.60/selectors.yml

Possible values: Value must match regular expression ^[0-9]+$

Example: 5009297550715157269
chainIdstringrequired

Native chain identifier (EIP-155 for EVM, genesis hash for SVM, etc.).

Example: 1
chainFamilystringrequired

Blockchain family/architecture type. Determines message format, address encoding, and execution model.

Example: EVM
destNetworkInfo objectrequired

Information about the blockchain network where the message will be executed

namestringrequired

Human-readable name identifier for the blockchain network. Used for display purposes and network identification.

Example: ethereum-mainnet
chainSelectorstringrequired

The CCIP chain selector identifier for the network. This is a uint64 value represented as a string. See the official chain selectors repository: https://github.com/smartcontractkit/chain-selectors/blob/v1.0.60/selectors.yml

Possible values: Value must match regular expression ^[0-9]+$

Example: 5009297550715157269
chainIdstringrequired

Native chain identifier (EIP-155 for EVM, genesis hash for SVM, etc.).

Example: 1
chainFamilystringrequired

Blockchain family/architecture type. Determines message format, address encoding, and execution model.

Example: EVM
routerAddressstringnullable

Address of the CCIP router contract that processed this message on the source chain. May be null if the router address is not available.

Example: 0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D
sendTransactionHashstringrequired

Transaction hash of the ccipSend() call on the source chain. Format depends on source chain family.

Example: 0x9428deb1234567890abcdef1234567890abcdef1234567890abcdef1234567890
sendTimestampstring<date-time>required

ISO 8601 timestamp when the message was sent.

Example: 2023-12-01T10:30:00Z
receiptTransactionHashstringnullable

Transaction hash of the message execution on the destination chain. Null if message hasn't been executed yet. Format depends on destination chain family.

Example: 3vZ8qJ1234567890abcdef1234567890abcdef1234567890abcdef1234567890
receiptTimestampstring<date-time>nullable

ISO 8601 timestamp when the message was executed on destination chain. Null if message hasn't been executed yet.

Example: 2023-12-01T10:45:00Z
datastringnullable

Arbitrary data payload to be delivered to the receiver contract encoded as hex string.

Example: 0x1234567890abcdef
feeTokenstringrequired

Address of the token used to pay CCIP fees on the source chain.

Example: 0xA0b86a33E6ba76E6F7c4AB4C3F05C7E0d3D7E2F6B
feeTokenAmountstringrequired

Amount of fee tokens paid for this message (in token's smallest unit).

Example: 5000000
tokenAmounts object[]required

Array of token transfers included in this message.

  • Array [
  • tokenAddressstringrequired

    Address of the token contract on the source chain. Format depends on source chain family.

    Example: 0xA0b86a33E6ba76E6F7c4AB4C3F05C7E0d3D7E2F6B
    amountstringrequired

    Amount of tokens to transfer in the token's smallest unit (wei, lamports, etc.). Must be positive and within token's transfer limits.

    Example: 1000000
  • ]
  • extraArgs objectrequired

    Extra arguments for message execution.

    oneOf
    gasLimitstringrequired

    Gas limit for message execution on the destination EVM chain. Default is 200,000 gas if not specified in the original message.

    Example: 400000
    allowOutOfOrderExecutionbooleanrequired

    Whether this message can be executed out of order relative to other messages from the same sender.

    Example: false
    ready_for_manual_executionbooleanrequired

    Whether this message can be manually executed if automatic execution failed.

    Example: false
    JSON
    Message
    {
    "messageId": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
    "sender": "0x742d35Cc6634C0532925a3b8D5c8C22C5B2D8a3E",
    "receiver": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
    "status": "SUCCESS",
    "sourceNetworkInfo": {
    "name": "ethereum-mainnet",
    "chainSelector": "5009297550715157269",
    "chainId": "1",
    "chainFamily": "EVM"
    },
    "destNetworkInfo": {
    "name": "solana-mainnet",
    "chainSelector": "124615329519749607",
    "chainId": "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d",
    "chainFamily": "SVM"
    },
    "routerAddress": "0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D",
    "sendTransactionHash": "0x9428deb1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
    "sendTimestamp": "2023-12-01T10:30:00Z",
    "receiptTransactionHash": "3vZ8qJ1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
    "receiptTimestamp": "2023-12-01T10:45:00Z",
    "data": "0x1234567890abcdef",
    "feeToken": "0xA0b86a33E6ba76E6F7c4AB4C3F05C7E0d3D7E2F6B",
    "feeTokenAmount": "5000000",
    "tokenAmounts": [
    {
    "tokenAddress": "0xA0b86a33E6ba76E6F7c4AB4C3F05C7E0d3D7E2F6B",
    "amount": "1000000"
    }
    ],
    "extraArgs": {
    "computeUnits": 400000,
    "accountIsWritableBitmap": "15",
    "allowOutOfOrderExecution": false,
    "tokenReceiver": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
    "accounts": [
    "Account1Address",
    "Account2Address"
    ]
    },
    "ready_for_manual_execution": false
    }