Skip to main content
Version: v2

Message

originstringrequired

Address of the user account that originally initiated the transaction (tx.origin) on the source chain.

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
noncestringnullable

Nonce value for replay protection and ordering.

Example: 12345
sequenceNumberstringrequired

Sequence number for message ordering within a lane.

Example: 67890
onrampstringrequired

Address of the CCIP OnRamp contract that created this message on the source chain.

Example: 0x1234567890abcdef1234567890abcdef12345678
senderstringrequired

Address of the account that called ccipSend() on the source chain router.

Example: 0x742d35Cc6634C0532925a3b8D5c8C22C5B2D8a3E
receiverstringrequired

Address of the intended recipient contract/account on the destination chain.

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 (CCIP v1.6 and below)
  • BLESSED: Message approved by CCIP network and ready for execution (CCIP v1.6 and below)
  • VERIFYING: Message is being verified by the CCIP network (CCIP v1.7+)
  • VERIFIED: Message has been verified by the CCIP network (CCIP v1.7+)
  • 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 (uint64 as string). Example Selectors (non-exhaustive):

ChainSelector
Arbitrum4949039107694359620
Base15971525489660198786
Ethereum5009297550715157269
Optimism3734403246176062136
Polygon4051577828743386545
Solana124615329519749607

For the complete list of chain selectors, see: CCIP Directory

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 (uint64 as string). Example Selectors (non-exhaustive):

ChainSelector
Arbitrum4949039107694359620
Base15971525489660198786
Ethereum5009297550715157269
Optimism3734403246176062136
Polygon4051577828743386545
Solana124615329519749607

For the complete list of chain selectors, see: CCIP Directory

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.

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
sendBlockNumberintegerrequired

Block number on the source chain where the CCIP message send event was emitted. Used for ordering messages and tracking blockchain finality.

Example: 12345678
sendLogIndexintegerrequired

Position/index of the event log within the transaction. Combined with sendTransactionHash, it uniquely identifies the specific event that created this message.

Example: 42
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
deliveryTimeintegernullable

End-to-end time taken to deliver the message in milliseconds. Null if message hasn't been executed yet.

Example: 900000
datastringnullable

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

Example: 0x1234567890abcdef
tokenAmounts object[]required

Array of token transfers included in this message.

  • Array [
  • sourceTokenAddressstringrequired

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

    Example: 0xA0b86a33E6ba76E6F7c4AB4C3F05C7E0d3D7E2F6B
    destTokenAddressstringrequired

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

    Example: 0xA0b86a33E6ba76E6F7c4AB4C3F05C7E0d3D7E2F6B
    sourcePoolAddressstringrequired

    Address of the pool 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
    extraDatastringnullable

    Additional arbitrary data that can be used to handle the token transfer.

    Example: 0x1234567890abcdef
    destGasAmountstringnullable

    Amount of gas for the token transfer.

    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
    readyForManualExecutionbooleanrequired

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

    Example: false
    versionstringnullable

    The lane version (e.g., "1.5.0", "1.6.0") for this message's source-destination pair.

    Example: 1.5.0
    finalityintegerrequired

    Number of block confirmations to wait for. 0 means the default finality for the chain. Any non-zero value specifies a custom block depth to wait for.

    Example: 0
    verifiers objectnullable

    Verifiers information including policies and verification status for this message.

    items object[]

    List of verifiers with their policies and verification status.

  • Array [
  • sourceAddressstringrequired

    Address of the verifier on the source chain.

    Example: 0x742d35Cc6634C0532925a3b8D5c8C22C5B2D8a3E
    destAddressstringrequired

    Address of the verifier on the destination chain.

    Example: 0x893F2f2bD9b6D3f8e24f5aB0c4bE7cC3D4e5F6a7
    metadata objectrequired
    namestringrequired

    Human-readable name for the verifier.

    Example: Chainlink Verifier
    logoUrlstring<uri>

    URL to the verifier's logo image.

    Example: https://example.com/chainlink-logo.png
    isRequiredbooleanrequired

    Whether verification from this verifier is mandatory.

    • true: Verification from this verifier is required for message execution
    • false: Verification from this verifier is optional
    Example: true
    statusstringrequired

    Status of the verification from this verifier. PENDING: Verification is pending. COMPLETED: Verification has been completed.

    Example: PENDING
    verification objectnullablerequired

    Verification details. Null if verification has not been completed.

    datastring

    Verification data as hex-encoded string.

    Example: 0x1234567890abcdef
    timestampstring<date-time>

    ISO 8601 timestamp when the verification was performed.

    Example: 2023-12-01T10:30:00Z
  • ]
  • optionalThresholdinteger

    Minimum number of optional verifiers that must verify this message.

    Example: 1
    executor objectnullable

    Executor assigned to execute this message on the destination chain.

    addressstring

    Address of the executor.

    fees objectrequired

    Details of the fee paid for this message.

    fixedFeesDetails object

    Fee details including token information and breakdown of fixed fees.

    tokenAddressstringrequired

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

    Example: 0xA0b86a33E6ba76E6F7c4AB4C3F05C7E0d3D7E2F6B
    totalAmountstringrequired

    Total amount of the fee token paid for this message (in token's smallest unit).

    Example: 5000000
    items object[]

    List of fixed-amount fees charged for this message.

  • Array [
  • contractAddressstringrequired

    Address of the contract that charged this fee on the source chain.

    Example: 0x742d35Cc6634C0532925a3b8D5c8C22C5B2D8a3E
    feeTypestringrequired

    Type of fee charged.

    • VERIFIER: Fee charged by a message verifier
    • EXECUTOR: Fee charged by the message executor
    • TOKEN_POOL: Fee charged by a token pool
    • NETWORK: Network-level fee
    Example: VERIFIER
    amountstringrequired

    Amount of the fee in the smallest unit of the fee token.

    Example: 1000000
  • ]
  • JSON
    Message
    {
    "messageId": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
    "sequenceNumber": "12345",
    "onramp": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
    "origin": "0x742d35cc6634c0532925a3b8d5c8c22c5b2d8a3e",
    "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",
    "sendBlockNumber": 12345678,
    "sendLogIndex": 42,
    "receiptTransactionHash": "3vZ8qJ1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
    "receiptTimestamp": "2023-12-01T10:45:00Z",
    "data": "0x1234567890abcdef",
    "tokenAmounts": [
    {
    "sourceTokenAddress": "0x80ac24aa929eaf5013f6436cda2a7ba190f5cc0b",
    "destTokenAddress": "AvZZF1YaZDziPY2RCK4oJrRVrbN3mTD9NL24hPeaZeUj",
    "sourcePoolAddress": "0x20b79d39bd44deee4f89b1e9d0e3b945fde06491",
    "amount": "1000000"
    }
    ],
    "extraArgs": {
    "computeUnits": 400000,
    "accountIsWritableBitmap": "15",
    "allowOutOfOrderExecution": false,
    "tokenReceiver": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
    "accounts": []
    },
    "readyForManualExecution": false,
    "finality": 0,
    "verifiers": {
    "items": [
    {
    "sourceAddress": "0x8fb4c06de17cefca5a89b013ac003e51445bac81",
    "destAddress": "0x6079D713025a0A87F4901371253a1d4193b630e0",
    "metadata": {
    "name": "Chainlink Verifier",
    "logoUrl": "https://example.com/chainlink-logo.png"
    },
    "isRequired": true,
    "status": "COMPLETED",
    "verification": {
    "data": "0xabcdef1234567890fedcba0987654321",
    "timestamp": "2023-12-01T10:35:00Z"
    }
    },
    {
    "sourceAddress": "0x5a2b35Cc6634C0532925a3b8D5c8C22C5B2D1234",
    "destAddress": "0x6b3c46Dd7745D1643036b4c9E6d9D33D6C3E2345",
    "metadata": {
    "name": "Second Verifier",
    "logoUrl": "https://example.com/second-logo.png"
    },
    "isRequired": false,
    "status": "PENDING",
    "verification": null
    }
    ],
    "optionalThreshold": 1
    },
    "executor": {
    "address": "0x8c4d57Ee8856E1754147c5d9F7e9F44E7D4F3456"
    },
    "fees": {
    "fixedFeesDetails": {
    "tokenAddress": "0x8fb4c06de17cefca5a89b013ac003e51445bac81",
    "totalAmount": "1800000",
    "items": [
    {
    "contractAddress": "0x742d35Cc6634C0532925a3b8D5c8C22C5B2D8a3E",
    "feeType": "VERIFIER",
    "amount": "1000000"
    },
    {
    "contractAddress": "0x54802db75581604cd29835eb03a4854d60e530a8",
    "feeType": "EXECUTOR",
    "amount": "500000"
    },
    {
    "contractAddress": "0xe516ef0385756ebfff23c7bd4a96bf47f89fa5a9",
    "feeType": "TOKEN_POOL",
    "amount": "300000"
    }
    ]
    }
    }
    }