After submitting a crosschain transaction via the Route or Bundle API, the bridge delivery is asynchronous. Enso provides protocol-specific status endpoints to track delivery progress on the destination chain.Documentation Index
Fetch the complete documentation index at: https://docs.enso.build/llms.txt
Use this file to discover all available pages before exploring further.
Quick Reference
| Bridge Protocol | Status Endpoint | Status Field |
|---|---|---|
| CCIP | GET /api/v1/ccip/bridge/check | status |
| CCTP | GET /api/v1/cctp/bridge/check | status |
| Relay | GET /api/v1/relay/bridge/check | status |
| Stargate | GET /api/v1/stargate/bridge/check | status |
chainId— source chain ID (number)txHash— source transaction hash (string,0x+ 64 hex characters)
Status Lifecycle
Bridge transactions progress through a unified status lifecycle:pending— Source transaction confirmed, bridge protocol hasn’t picked it up yetinflight— Bridge protocol is processing the cross-chain messagedelivered— Tokens and callbacks successfully delivered on the destination chainfailed— Bridge or callback execution failed (checkerrorandensoDestinationEventfor details)unknown— Status could not be determined
Identifying the Bridge Protocol
- Route API
- Bundle API
When using the Route API, the response tells you which bridge was automatically selected:
- Check the
routearray for the hop whereaction === "bridge"— itsprotocolfield contains the bridge protocol - The
bridgingEstimatesarray provides the protocol name and estimated delivery time
Status Check Endpoints
CCIP (Chainlink)
CCIP (Chainlink)
GET /api/v1/ccip/bridge/check — Check Chainlink CCIP bridge transaction status.| Field | Type | Description |
|---|---|---|
status | string | pending / inflight / delivered / failed / unknown |
sourceChainId | number | Source chain ID |
sourceTxHash | string | Source transaction hash |
sourceChainIdFinality | number | Required finality time in seconds for the source chain |
sourceChainEstimatedTimeForFinalitySeconds | number? | Estimated seconds remaining until finality |
destinationChainId | number? | Destination chain ID |
destinationTxHash | string? | Destination tx hash (when delivered) |
ccipSendParamsDecoded | object? | Decoded CCIP params: destination chain, token amounts with metadata, fees, gas limit |
ensoSourceEvent | object | null | Enso execution event on source chain |
ensoDestinationEvent | object | null | Enso callback execution event on destination |
error | string? | Error message if something went wrong |
CCTP (Circle)
CCTP (Circle)
GET /api/v1/cctp/bridge/check — Check Circle CCTP v2 bridge transaction status.| Field | Type | Description |
|---|---|---|
status | string | pending / inflight / delivered / failed / unknown |
sourceChainId | number | Source chain ID |
sourceTxHash | string | Source transaction hash |
destinationChainId | number? | Destination chain ID (resolved from CCTP domain) |
destinationTxHash | string? | Destination tx hash (when minted) |
cctpTransferType | "fast" | "standard"? | Reflects finalityThresholdExecuted (may differ from requested type) |
depositForBurn | object? | Raw depositForBurn params — present only when the source call had no hookData |
depositForBurnDecoded | object? | Decoded depositForBurn: token metadata, chain IDs, maxFee vs feeExecuted, finality info |
depositForBurnWithHook | object? | Raw depositForBurnWithHook params — present only when hookData is non-empty |
depositForBurnWithHookDecoded | object? | Decoded form including hookData.forwardingService (true when bytes match Circle’s cctp-forward magic) |
ensoSourceEvent | object | null | Enso execution event on source chain |
error | string? | Error message if the check failed |
Fast vs Standard detection: After the burn is attested,
cctpTransferType
is set from finalityThresholdExecuted (≤ 1000 = fast, ≥ 2000 =
standard). This is the actual path Circle took — it can differ from your
requested cctpTransferType if Fast allowance was exhausted or the source
chain didn’t support Fast.Upstream source: this endpoint is backed by Circle’s Iris
GET /v2/messages/{sourceDomainId} —
Enso wraps it with on-chain enrichment (token metadata, chain IDs decoded from
CCTP domains, executed-fee vs requested-fee). See Circle’s supported
blockchains
matrix
for which chains support Fast Transfer.Relay
Relay
GET /api/v1/relay/bridge/check — Check Relay bridge transaction status.| Field | Type | Description |
|---|---|---|
status | string | pending / inflight / delivered / failed / unknown |
sourceChainId | number | Source chain ID |
sourceTxHash | string | Source transaction hash |
destinationChainId | number? | Destination chain ID |
destinationTxHash | string? | Destination tx hash (when delivered) |
relayRequest | object? | Relay details: raw status, user, recipient, in/out txs, fee breakdown, timestamps |
ensoSourceEvent | object | null | Enso execution event on source chain |
ensoDestinationEvent | object | null | Enso callback execution event on destination |
error | string? | Error message if something went wrong |
Stargate
Stargate
GET /api/v1/stargate/bridge/check — Check Stargate (LayerZero) bridge transaction status.| Field | Type | Description |
|---|---|---|
status | string | pending / inflight / delivered / failed / unknown |
sourceChainId | number | Source chain ID |
sourceTxHash | string | Source transaction hash |
destinationChainId | number? | Destination chain ID (when known) |
destinationTxHash | string? | Destination tx hash (when delivered) |
isMultiBridge | boolean? | true for multi-hop bridge transactions |
hops | array? | Individual hop details for multi-bridge transactions |
layerZeroMessage | object? | LayerZero message pathway and timing details |
ensoSourceEvent | object | null | Enso execution event on source chain |
ensoDestinationEvent | object | null | Enso callback execution event on destination |
ensoMetadata | object? | Request metadata (tokenIn, tokenOut, amountIn) |
error | string? | Error message if something went wrong |
Multi-hop support: Stargate supports multi-hop transactions (up to 5
sequential bridges). When
isMultiBridge is true, the hops array contains
per-hop status tracking with individual sourceChainId, destinationChainId,
status, and layerZeroMessage fields.Callback Execution Events
Stargate, CCIP, and Relay include bothensoSourceEvent and ensoDestinationEvent in their responses — these track whether Enso’s callback logic executed successfully on each chain.
CCTP returns only ensoSourceEvent (no Enso callback runs on the destination because CCTP doesn’t support post-bridge actions — the mint is a pure Circle receiveMessage).
| Field | Value | Meaning |
|---|---|---|
ensoSourceEvent | null | Source event not yet found |
ensoSourceEvent.success | true | Source chain execution succeeded |
ensoSourceEvent.success | false | Source chain execution failed — check error field |
ensoDestinationEvent | null | Destination event not yet found (bridge still in transit) |
ensoDestinationEvent.success | true | Destination callback executed successfully |
ensoDestinationEvent.success | false | Destination callback failed — check error and refundDetails |
refundDetails provides information about where funds were sent:
Resources
- Crosschain Routing Guide — How to build crosschain transactions
- Crosschain Bridges — Bridge protocol use cases and examples
- Bridge Action Reference — Technical details on bridge parameters
Updated
