Prerequisites and Permissions
Managing CCIP rate limits is a privileged, operator-level action. Before attempting to inspect or modify any rate limit configuration, you must meet the prerequisites described on this page.
Required permissions
To update rate limits, the submitting wallet must be either:
- the pool owner, or
- the address returned by
getDynamicConfig()asrateLimitAdmin
The update function is setRateLimitConfig. Without one of these roles, you can read on-chain data but cannot make changes.
In most cases, the rateLimitAdmin role is assigned to a multisig wallet rather than to an individual externally owned account.
How rate limit admin access is granted (v2.0 pools)
Admin access is not self-assigned.
v2.0
The rateLimitAdmin is set through setDynamicConfig:
function setDynamicConfig(
address router,
address rateLimitAdmin,
address feeAdmin
) external;
Verify the current configuration:
function getDynamicConfig()
external
view
returns (address router, address rateLimitAdmin, address feeAdmin);
The update function is setRateLimitConfig.
v1.x pools
v1 pools use a standalone admin function:
function getRateLimitAdmin() external view returns (address);
function setRateLimitAdmin(address rateLimitAdmin) external; // owner only
The update functions are setChainRateLimiterConfig (single lane) or setChainRateLimiterConfigs (batch).
Scope of admin authority
rateLimitAdmin can:
- update inbound and outbound rate limits for configured remote chains
- on v2.0: update default and fast-finality buckets via
setRateLimitConfig
rateLimitAdmin cannot:
- add or remove remote chains (
applyChainUpdates) — owner only - change admin addresses — owner only (
setDynamicConfigon v2.0;setRateLimitAdminon v1.x)
Owner can:
- everything
rateLimitAdmincan do - add or remove lanes via
applyChainUpdates
Authority applies per token pool, per remote chain, and per direction (and per bucket type on v2.0).
Operational expectations
Before making any changes, you should ensure that:
- you understand the token's decimal precision and smallest unit on each chain you configure
- you have reviewed the current inbound and outbound configurations (and fast-finality buckets on v2.0)
- you are prepared to validate values carefully before submitting transactions
- v2.0 only: Config changes immediately refill buckets to full capacity.
- v1.x pools: Config changes do not immediately refill to full capacity — the bucket continues refilling at the normal rate.
Rate limit changes are applied on-chain and take effect immediately.
Responsibility boundary
By managing rate limits, you take responsibility for the availability of cross-chain transfers for the affected token and lane.
Incorrect configuration can:
- unintentionally block transfers
- allow more volume than intended
- create operational or user-facing disruption
For this reason, rate limit management should follow a deliberate review process and use a multisig workflow where possible.
What's next
If you meet these prerequisites, the next step is to inspect the current inbound and outbound rate limit configuration before making any changes.