---
title: "Check CCIP bridge transaction status"
method: GET
path: "/api/v1/ccip/bridge/check"
tags: ["ccip"]
---

# Check CCIP bridge transaction status

`GET /api/v1/ccip/bridge/check`

Returns comprehensive information about a cross-chain CCIP bridge transaction, including CCIP message parameters, on-chain events, and transaction data from Enso.

## Query parameters

- `chainId` number, required
- `txHash` string, required

## Response `200`

Bridge transaction status and details

- CcipBridgeTransactionResponse
  - `sourceChainId` number, required — Source chain ID where the CCIP message was sent from
  - `sourceTxHash` string, required — Source chain transaction hash
  - `sourceChainIdFinality` number, required — CCIP finality time in seconds for the source chain (time required for CCIP to achieve finality)
  - `sourceChainEstimatedTimeForFinalitySeconds` number — Estimated seconds remaining until source chain finality is achieved
  - `ccipSendParams` CcipSendParams
    - `destinationChainSelector` string, required — Destination chain selector (CCIP format, not Enso ChainId). See https://docs.chain.link/ccip/supported-networks
    - `message` CcipEvm2AnyMessage, required
      - `receiver` string, required
      - `tokenAmounts` CcipEvmTokenAmount[], required
        - `token` string, required
        - `amount` string, required
      - `feeToken` string, required
  - `ccipSendParamsDecoded` CcipSendParamsDecoded
    - `destinationChainId` number — Destination chain ID
    - `data` DecodedMessageData
      - `receiver` string, required — Receiver address extracted from CCIP message data
      - `error` string — Error message if message.data could not be decoded as (address,bytes)
    - `tokenAmounts` TokenAmount[] — Token amounts being transferred cross-chain with full token metadata
      - `token` TokenInfo, required
        - `address` string, required — Token contract address
        - `symbol` string — Token symbol (e.g., USDT, USDC)
        - `name` string — Token full name
        - `decimals` number — Token decimals
      - `amount` string, required — Token amount (in wei/smallest unit)
    - `fee` FeeDetails
      - `token` TokenInfo, required
        - `address` string, required — Token contract address
        - `symbol` string — Token symbol (e.g., USDT, USDC)
        - `name` string — Token full name
        - `decimals` number — Token decimals
      - `amount` string, required — Fee amount paid for CCIP message (in wei/smallest unit)
    - `extraArgs` ExtraArgs
      - `gasLimit` string, required — Gas limit allocated for shortcut execution on destination chain
      - `allowOutOfOrderExecution` boolean, required — Whether CCIP can execute this message out of order (true = allow)
  - `destinationChainId` number — Destination chain ID where the CCIP message was delivered
  - `destinationTxHash` string — Destination chain transaction hash (if message was delivered)
  - `status` 'pending' | 'inflight' | 'delivered' | 'failed' | 'ready_for_manual_execution' | 'unknown', required — Overall bridge status. `ready_for_manual_execution` means destination execution failed/stalled but is recoverable — anyone can (re)trigger manual execution once the underlying cause is resolved.
  - `readyForManualExecution` boolean — True if the CCIP message is awaiting (or can be retried via) manual execution on the destination chain. A failed message that is ready for manual execution can be re-triggered by anyone once the underlying cause (e.g. token pool liquidity) is resolved.
  - `ensoSourceEvent` EnsoEvent
    - `accountId` string — Account ID from ShortcutExecuted event
    - `requestId` string — Request ID from ShortcutExecuted event
    - `blockNumber` number, required — Block number where the event was emitted
    - `transactionHash` string, required — Transaction hash
    - `chainId` number, required — Chain ID where the event was emitted
    - `success` boolean, required — Whether the shortcut execution was successful
    - `error` string — Error data if execution failed
    - `refundDetails` RefundDetails
      - `token` string, required — Token address (0xeee... for native token)
      - `amount` string, required — Amount refunded
      - `recipient` string, required — Recipient address
      - `isNative` boolean, required — Whether the refund is in native token
  - `ensoDestinationEvent` EnsoEvent
    - `accountId` string — Account ID from ShortcutExecuted event
    - `requestId` string — Request ID from ShortcutExecuted event
    - `blockNumber` number, required — Block number where the event was emitted
    - `transactionHash` string, required — Transaction hash
    - `chainId` number, required — Chain ID where the event was emitted
    - `success` boolean, required — Whether the shortcut execution was successful
    - `error` string — Error data if execution failed
    - `refundDetails` RefundDetails
      - `token` string, required — Token address (0xeee... for native token)
      - `amount` string, required — Amount refunded
      - `recipient` string, required — Recipient address
      - `isNative` boolean, required — Whether the refund is in native token
  - `error` string — Error message if the API request failed (e.g., transaction not found, invalid chain selector, API errors)

## Other responses

- `429` — Rate limit exceeded

---

[API](https://skmtc.net/enso/apis/untitled-api.md) · [All operations](https://skmtc.net/enso/apis/untitled-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/enso/untitled-api/revisions/b70d36b7002b/schema)
