CCIP v2.0.0 IFeeQuoter API Reference

Summary

IFeeQuoter defines the public interface for CCIP fee quoting and pricing.

It provides functions for:

  • Fee token discovery
  • Token price retrieval
  • Destination-chain gas price retrieval
  • Price updates
  • Token-transfer fee resolution
  • Execution gas quoting
  • Legacy extra-args resolution

This interface is used by [OnRamp](/ccip/evm/api-reference/v2.0.0/onramp), [Executor](/ccip/evm/api-reference/v2.0.0/executor), and other components that convert USD-denominated fees into fee-token amounts.


Contract

chains/evm/contracts/interfaces/IFeeQuoter.sol


Import

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

Interface surface

interface IFeeQuoter {

getFeeTokens

function getFeeTokens()
  external
  view
  returns (address[] memory);

getTokenPrice

function getTokenPrice(
  address token
)
  external
  view
  returns (Internal.TimestampedPackedUint224 memory);

getValidatedTokenPrice

function getValidatedTokenPrice(
  address token
)
  external
  view
  returns (uint224);

getTokenPrices

function getTokenPrices(
  address[] calldata tokens
)
  external
  view
  returns (Internal.TimestampedPackedUint224[] memory);

updatePrices

function updatePrices(
  Internal.PriceUpdates calldata priceUpdates
)
  external;

getDestinationChainGasPrice

function getDestinationChainGasPrice(
  uint64 destChainSelector
)
  external
  view
  returns (Internal.TimestampedPackedUint224 memory);

getTokenTransferFee

function getTokenTransferFee(
  uint64 destChainSelector,
  address token
)
  external
  view
  returns (
    uint32 feeUSDCents,
    uint32 destGasOverhead,
    uint32 destBytesOverhead
  );

quoteGasForExec

function quoteGasForExec(
  uint64 destChainSelector,
  uint32 nonCalldataGas,
  uint32 calldataSize,
  address feeToken
)
  external
  view
  returns (
    uint32 totalGas,
    uint256 gasCostInUsdCents,
    uint256 feeTokenPrice,
    uint256 premiumPercentMultiplier
  );

resolveLegacyArgs

function resolveLegacyArgs(
  uint64 destChainSelector,
  bytes calldata extraArgs
)
  external
  view
  returns (
    bytes memory tokenReceiver,
    uint32 gasLimit,
    bytes memory executorArgs
  );

}

Integration notes / expectations

  • updatePrices should be access-controlled in implementations.
  • All price-returning functions may revert if price data is missing or invalid.
  • Returned USD values are denominated in USD cents or 18-decimal USD units depending on function.
  • Gas price encoding is chain-family dependent.
  • Legacy functions exist for compatibility with pre-1.7 lanes.

Get the latest Chainlink content straight to your inbox.