Lucid
  • USING LUCID
    • Welcome to Lucid
    • Homepage
    • Explore Page
    • Organisation Summary Page
    • Sidebar Navigation
  • Organisation Creation Page
  • Creating an Organisation
    • 1. Setup Organisation Details
    • 2. Module Selection
    • 3. Module Configuration
    • 4. Safe and Protocol Upgrades Configuration
    • 5. Governor Configuration
    • 6. Veto and Multi-Bridge Configuration
    • 7. Token Configuration
    • 8. Asset Transfer Portals Configuration
    • 9. Review and Deploy Organisation
    • 10. Lucid Post-Deployment Integration
  • Editing an Organisation
  • Modules and integrations
    • Multi-Bridge
      • Multi-Bridge Asset Transfers
      • Multi-Bridge Message and Asset Transfers
      • Resend Transaction
    • Bridge Portals
    • Vested Emission Offerings (VEOs)
      • VEO Purchase Flow
      • VEO Creation Flow
      • VEO Removal Flow
      • Claiming Vested Tokens
    • Wizard | Protocol Upgrades
  • Developer Reference
    • VEOs
      • Vesting Options
      • Price Models
      • Debt Buffer
      • Deposit Interval
    • Message Bridging
      • Sending a Message
      • Message Execution
      • Admin Functions
    • Asset Bridging
      • Bridging Assets
      • Admin Functions
    • Adapters
      • Axelar Adapter
      • CCIP Adapter
      • Connext Adapter
      • Hyperlane Adapter
      • LayerZero Adapter
      • Polymer Adapter
      • Wormhole Adapter
    • Deployed Contracts
      • Multibridge Contracts
      • VEO Contracts
  • API Reference
  • RESOURCES
    • About
    • Fees
      • Lucid Pricing and Fee Structure
      • Fee Estimates for Bridges
    • Frequently Asked Questions
    • Key Terms and Explanations
    • Contact
Powered by GitBook
On this page
  • Fees
  • Interfaces
  1. Developer Reference
  2. Adapters

CCIP Adapter

Lucid has developed an adapter that integrates with Chainlink’s Cross-Chain Interoperability Protocol (CCIP) to send and receive messages across chains.

Fees

CCIP supports on-chain fee quoting, which this adapter uses to estimate the fees required for message delivery.

When sending or exporting a transaction from the Lucid App, Lucid automatically calculates the total fees for the transaction, including any applicable protocol fees.

Unlike some bridges, CCIP does not refund excess gas fees by default. However, using the on-chain quote functionality, the CCIP Adapter contract will determine if any excess Ether was sent and refund it to the refundAddress specified in the options field.

Interfaces

Each adapter implements the following public functions:

relayMessage

function relayMessage( uint256 destChainId, address destination, bytes memory options, bytes calldata message ) external payable returns (bytes32)

Sends a message through the CCIP bridge, deducts the protocol fee, and pays the required CCIP fee.

  • The refundAddress and the gasLimit of the transaction on destination must be ABI-encoded within the options bytes (see the Options struct below).

  • The Ether sent by the calling contract must cover both the CCIP fee and the Lucid protocol fee.

  • If excess funds are sent, the contract will refund the difference to the refundAddress.

  • Returns a bytes32 value representing the transferId generated by CCIP.

Input Params:

Type
Name
Description

uint256

destChainId

The destination chain ID.

address

destination

The destination address.

bytes

options

Additional params to be used by each adapter. In CCIP it's an ABI-encoded Options struct.

bytes

message

The message to be relayed.

    /// @notice Options to be used when sending a message to CCIP
    struct Options {
        address refundAddress;
        uint256 gasLimit;
    }

quoteMessage

function quoteMessage( address destination, uint256 chainId, uint256 gasLimit, bytes calldata message, bool includeFee ) external view returns (uint256)

Calculates the total fee required to send a message using CCIP’s on-chain quoting functionality. Returns the estimated fee amount in Ether.

Input Params:

Type
Name
Description

address

destination

The destination address

uint256

chainId

The destination chain ID

uint256

gasLimit

The gas limit required for the execution in the destination chain

bytes

message

The message data that is sent across

bool

includeFee

Whether to include the protocol fee in the calculation

PreviousAxelar AdapterNextConnext Adapter

Last updated 27 days ago