CCIP v2.0.0 IExecutor API Reference

IExecutor defines the interface for enforcing execution policy and computing execution fees for CCIP message delivery.

It determines:

  • whether a message satisfies execution constraints (chain, finality, CCVs)
  • the fee required for execution under those constraints

This interface represents the execution policy layer between fee pricing and message validation.

This interface exposes the read-only execution policy surface used by CCIP routing components.

This interface defines functions implemented by protocol contracts and is not typically used directly by applications.

Usage Boundary

You do not call this interface directly.

  • CCIP routing components use this interface to validate execution constraints and compute execution fees.
  • Executor implementations enforce allowed chains, CCV limits, and finality rules.
  • You implement this interface when defining custom execution policy.
  • Execution flow typically follows: FeeQuoter (pricing) → Executor (policy + execution fee) → Verifier (validation).

Contract

interfaces/IExecutor.sol

Import

import {IExecutor} from "chainlink-ccip/interfaces/IExecutor.sol";

If you have not installed the package:

npm install @chainlink/contracts-ccip@2.0.0

External API

getAllowedFinalityConfig

function getAllowedFinalityConfig() external view returns (bytes4)

Returns the finality policy currently allowed by the executor implementation.

Returns:

TypeDescription
bytes4Allowed finality configuration.

getFee

function getFee(
  uint64 destChainSelector,
  bytes4 requestedFinalityConfig,
  address[] memory ccvAddresses,
  bytes memory extraArgs,
  address feeToken
) external view returns (
  uint16 usdCents
)

Returns the execution fee based on destination chain, requested finality, and selected CCVs.

ParameterTypeDescription
destChainSelectoruint64Destination chain identifier.
requestedFinalityConfigbytes4Desired finality configuration.
ccvAddressesaddress[] memoryCCV contracts requested for message validation.
extraArgsbytes memoryAdditional execution parameters.
feeTokenaddressToken used to pay execution fees.

Returns:

TypeDescription
uint16Execution fee denominated in USD cents.

Notes

  • Execution requires that selected CCVs satisfy configured constraints.
  • The number and identity of CCVs must conform to executor configuration.
  • Fee calculation must be deterministic for a given set of inputs.
  • Execution fee calculation will revert if constraints are not satisfied.
  • requestedFinalityConfig must be compatible with the executor’s allowed finality policy.
  • The fee returned by getFee reflects execution policy and CCV selection, not general message pricing.
  • If no valid execution policy exists for the provided inputs, fee calculation should revert rather than return a misleading value.

Get the latest Chainlink content straight to your inbox.