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
updatePricesshould 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.