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
optionalMessagebecomes part of the bridge proof and must be validated on destination.- Consumers should verify
MSG_VERSION()(inherited fromIBridgeV2) matches expected version. - This interface does not define proof validation semantics; those are bridge-specific.
- Used by
LombardVerifierto bind(versionTag || messageId)into bridge flows.