Enso ccip API

The ccip API from Enso — 2 operation(s) for ccip.

OpenAPI Specification

enso-ccip-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Enso ccip API
  description: '#### Enso API

    - Find detailed documentation on [docs.enso.finance](https://docs.enso.finance).

    - To use the API, **you must include your API Key in the Authorization header** (Bearer format).

    - For testing, Swagger pre-authorizes you using the key: `1e02632d-6feb-4a75-a157-documentation` (1rps).

    - Get your own API Key at [enso.finance/developers](https://developers.enso.build/).'
  version: '1.0'
  contact: {}
servers:
- url: https://api.enso.finance
security:
- bearer: []
tags:
- name: ccip
paths:
  /api/v1/ccip/router:
    get:
      operationId: CcipController_getRouter
      summary: Get CCIP router address for a chain
      description: Returns the CCIP router contract address for the specified chain.
      parameters:
      - name: chainId
        required: true
        in: query
        description: Chain ID to get the CCIP router address for
        schema:
          example: 42161
          type: number
      responses:
        '200':
          description: CCIP router address
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CcipRouterResponse'
        '400':
          description: Chain not supported by CCIP
      tags:
      - ccip
  /api/v1/ccip/bridge/check:
    get:
      operationId: CcipController_checkBridgeTransaction
      summary: Check CCIP bridge transaction status
      description: Returns comprehensive information about a cross-chain CCIP bridge transaction, including CCIP message parameters, on-chain events, and transaction data from Enso.
      parameters:
      - name: chainId
        required: true
        in: query
        description: Chain ID of the source transaction
        schema:
          example: 56
          type: number
      - name: txHash
        required: true
        in: query
        description: Transaction hash of the CCIP bridge transaction on source chain
        schema:
          example: '0x80f1faf0652a5618ea1de0fc5142418e380676b3c6c74d482cfac1237638d6d4'
          type: string
      responses:
        '200':
          description: Bridge transaction status and details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CcipBridgeTransactionResponse'
        '429':
          description: Rate limit exceeded
      tags:
      - ccip
components:
  schemas:
    CcipSendParams:
      type: object
      properties:
        destinationChainSelector:
          type: string
          description: Destination chain selector (CCIP format, not Enso ChainId). See https://docs.chain.link/ccip/supported-networks
          example: '15971525489660198786'
        message:
          description: CCIP message parameters (Client.EVM2AnyMessage structure with receiver, data, tokenAmounts, feeToken, extraArgs)
          allOf:
          - $ref: '#/components/schemas/CcipEvm2AnyMessage'
      required:
      - destinationChainSelector
      - message
    TokenInfo:
      type: object
      properties:
        address:
          type: string
          description: Token contract address
          example: '0x55d398326f99059fF775485246999027B3197955'
        symbol:
          type: string
          description: Token symbol (e.g., USDT, USDC)
          example: USDT
        name:
          type: string
          description: Token full name
          example: Tether USD
        decimals:
          type: number
          description: Token decimals
          example: 18
      required:
      - address
    CcipRouterResponse:
      type: object
      properties:
        router:
          type: string
          description: CCIP router contract address for the specified chain
          example: '0x141fa059441E0ca23ce184B6A78bafD2A517DdE8'
      required:
      - router
    DecodedMessageData:
      type: object
      properties:
        receiver:
          type: string
          description: Receiver address extracted from CCIP message data
          example: '0x1234567890123456789012345678901234567890'
        shortcutData:
          type: string
          description: Encoded shortcut execution data (commands and state for Enso router)
          example: 0x3d3d3d3d...
        error:
          type: string
          description: Error message if message.data could not be decoded as (address,bytes)
          example: Could not decode message.data as (address,bytes)
      required:
      - receiver
      - shortcutData
    ExtraArgs:
      type: object
      properties:
        gasLimit:
          type: string
          description: Gas limit allocated for shortcut execution on destination chain
          example: '2000000'
        allowOutOfOrderExecution:
          type: boolean
          description: Whether CCIP can execute this message out of order (true = allow)
          example: false
      required:
      - gasLimit
      - allowOutOfOrderExecution
    FeeDetails:
      type: object
      properties:
        token:
          description: Fee token information
          allOf:
          - $ref: '#/components/schemas/TokenInfo'
        amount:
          type: string
          description: Fee amount paid for CCIP message (in wei/smallest unit)
          example: '5000000000000000'
      required:
      - token
      - amount
    CcipBridgeTransactionResponse:
      type: object
      properties:
        sourceChainId:
          type: number
          description: Source chain ID where the CCIP message was sent from
          example: 56
        sourceTxHash:
          type: string
          description: Source chain transaction hash
          example: '0x80f1faf0652a5618ea1de0fc5142418e380676b3c6c74d482cfac1237638d6d4'
        sourceChainIdFinality:
          type: number
          description: CCIP finality time in seconds for the source chain (time required for CCIP to achieve finality)
          example: 5
        sourceChainEstimatedTimeForFinalitySeconds:
          type: number
          description: Estimated seconds remaining until source chain finality is achieved
          example: 0
        ccipSendParams:
          description: Raw CCIP send parameters extracted from Chainlink API (destinationChainSelector and message)
          allOf:
          - $ref: '#/components/schemas/CcipSendParams'
        ccipSendParamsDecoded:
          description: Decoded and enriched CCIP send parameters with full token metadata and human-readable data
          allOf:
          - $ref: '#/components/schemas/CcipSendParamsDecoded'
        destinationChainId:
          type: number
          description: Destination chain ID where the CCIP message was delivered
          example: 8453
        destinationTxHash:
          type: string
          description: Destination chain transaction hash (if message was delivered)
          example: '0x9a3e6a8a52b82a1f4b523b0d50be133df0ad9407814b32e42d67119e1ae1947d'
        status:
          type: string
          description: 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.
          enum:
          - pending
          - inflight
          - delivered
          - failed
          - ready_for_manual_execution
          - unknown
        readyForManualExecution:
          type: boolean
          description: 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.
          example: true
        ensoSourceEvent:
          description: Enso shortcut event from source chain (ShortcutExecuted + execution result). Null if not found.
          nullable: true
          allOf:
          - $ref: '#/components/schemas/EnsoEvent'
        ensoDestinationEvent:
          description: Enso shortcut event from destination chain (ShortcutExecuted + execution result). Null if not found.
          nullable: true
          allOf:
          - $ref: '#/components/schemas/EnsoEvent'
        error:
          type: string
          description: Error message if the API request failed (e.g., transaction not found, invalid chain selector, API errors)
          example: Transaction receipt not found for 0x...
      required:
      - sourceChainId
      - sourceTxHash
      - sourceChainIdFinality
      - status
    CcipSendParamsDecoded:
      type: object
      properties:
        destinationChainId:
          type: number
          description: Destination chain ID
          example: 8453
        data:
          description: Decoded message data containing receiver address and shortcut execution data
          allOf:
          - $ref: '#/components/schemas/DecodedMessageData'
        tokenAmounts:
          description: Token amounts being transferred cross-chain with full token metadata
          type: array
          items:
            $ref: '#/components/schemas/TokenAmount'
        fee:
          description: CCIP fee details with token information
          allOf:
          - $ref: '#/components/schemas/FeeDetails'
        extraArgs:
          description: CCIP extra arguments (gas limit and execution order preferences)
          allOf:
          - $ref: '#/components/schemas/ExtraArgs'
    EnsoEvent:
      type: object
      properties:
        accountId:
          type: string
          description: Account ID from ShortcutExecuted event
        requestId:
          type: string
          description: Request ID from ShortcutExecuted event
        blockNumber:
          type: number
          description: Block number where the event was emitted
        transactionHash:
          type: string
          description: Transaction hash
        chainId:
          type: number
          description: Chain ID where the event was emitted
        success:
          type: boolean
          description: Whether the shortcut execution was successful
        error:
          type: string
          description: Error data if execution failed
        refundDetails:
          description: Refund details if execution failed and funds were returned
          allOf:
          - $ref: '#/components/schemas/RefundDetails'
      required:
      - blockNumber
      - transactionHash
      - chainId
      - success
    CcipEvm2AnyMessage:
      type: object
      properties:
        receiver:
          type: string
        data:
          type: string
        tokenAmounts:
          type: array
          items:
            $ref: '#/components/schemas/CcipEvmTokenAmount'
        feeToken:
          type: string
        extraArgs:
          type: string
      required:
      - receiver
      - data
      - tokenAmounts
      - feeToken
      - extraArgs
    TokenAmount:
      type: object
      properties:
        token:
          description: Token information
          allOf:
          - $ref: '#/components/schemas/TokenInfo'
        amount:
          type: string
          description: Token amount (in wei/smallest unit)
          example: '1000000000000000000'
      required:
      - token
      - amount
    CcipEvmTokenAmount:
      type: object
      properties:
        token:
          type: string
        amount:
          type: string
      required:
      - token
      - amount
    RefundDetails:
      type: object
      properties:
        token:
          type: string
          description: Token address (0xeee... for native token)
        amount:
          type: string
          description: Amount refunded
        recipient:
          type: string
          description: Recipient address
        isNative:
          type: boolean
          description: Whether the refund is in native token
      required:
      - token
      - amount
      - recipient
      - isNative
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: apiKey
      type: http