CCIP v2.0.0 IBridgeV3 API Reference

Summary

IBridgeV3 extends IBridgeV2 by adding support for an additional optionalMessage payload during deposits.

The optionalMessage:

  • Is forwarded to the destination chain.
  • Becomes part of the bridge message proof.
  • Enables higher-level protocols (such as CCIP) to bind metadata to bridge transfers.

All IBridgeV2 functionality remains available.


Contract

chains/evm/contracts/interfaces/lombard/IBridgeV3.sol


Import

import {IBridgeV3} from "chainlink-ccip/chains/evm/contracts/interfaces/lombard/IBridgeV3.sol";

Interface surface

interface IBridgeV3 is IBridgeV2 {

deposit (V3 overload)

function deposit(
  bytes32 destinationChain,
  address token,
  address sender,
  bytes32 recipient,
  uint256 amount,
  bytes32 destinationCaller,
  bytes calldata optionalMessage
) external payable returns (uint256, bytes32);

Extends IBridgeV2.deposit by adding:

bytes calldata optionalMessage

Parameters:

  • destinationChain — Lombard chain identifier.
  • token — Source token address.
  • sender — Logical sender of the deposit.
  • recipient — 32-byte destination recipient identifier.
  • amount — Token amount to bridge.
  • destinationCaller — Authorized destination handler.
  • optionalMessage — Arbitrary payload forwarded and included in proof.

Returns:

  • uint256 — Bridge-defined numeric identifier.
  • bytes32 — Bridge-defined message or payload hash.

Function is payable.


}

Integration notes / expectations

  • optionalMessage becomes part of the bridge proof and must be validated on destination.
  • Consumers should verify MSG_VERSION() (inherited from IBridgeV2) matches expected version.
  • This interface does not define proof validation semantics; those are bridge-specific.
  • Used by LombardVerifier to bind (versionTag || messageId) into bridge flows.

Get the latest Chainlink content straight to your inbox.