# Update Rate Limits
Source: https://docs.chain.link/ccip/concepts/rate-limit-management/update-rate-limits

> For the complete documentation index, see [llms.txt](/llms.txt).

Once you understand the current configuration and have validated token units and decimals, you can update inbound and outbound rate limits for a specific token pool and lane.

Rate limit updates are applied on-chain and take effect immediately. Changes should be made deliberately and reviewed carefully before submission.

## Function used to update rate limits

Rate limits are updated by calling the `setChainRateLimiterConfig` function on the token pool contract.

This function updates both the inbound and outbound rate limit configuration for a given remote chain.

## Required parameters

The `setChainRateLimiterConfig` function takes three parameters:

```solidity
function setChainRateLimiterConfig(
  uint64 remoteChainSelector,
  RateLimiter.Config outboundConfig,
  RateLimiter.Config inboundConfig
) external;
```

Each configuration tuple contains:

```solidity
struct Config {
  bool isEnabled;
  uint128 capacity;
  uint128 rate;
}
```

- **isEnabled**: whether the rate limit is active
- **capacity**: maximum bucket size (in base units)
- **rate**: refill rate in tokens per second (in base units)

## Inbound and outbound configuration guidance

Inbound and outbound limits are configured independently, but they are related.

A common operational pattern is:

- configure **outbound capacity** to be lower than inbound capacity
- set outbound capacity to approximately **90% of the inbound value**

This provides buffer room and reduces the likelihood of in-flight congestion.

## Example interaction (conceptual)

Rate limit updates are typically executed using a web3-enabled client or a multisig wallet.

At a high level, updating a rate limit involves:

- selecting the token pool contract address
- providing the remote chain selector
- supplying outbound and inbound configuration tuples
- submitting the transaction from a wallet with the `rateLimitAdmin` role

The exact tooling used does not change the on-chain behavior.

## Verifying before submission

Before submitting a rate limit update:

- re-check all values are expressed in the token’s smallest unit
- confirm inbound and outbound directions are not swapped
- verify the correct remote chain selector is used
- review existing values to ensure changes are intentional

## After the update

Once the transaction is confirmed:

- the new rate limits apply immediately
- transfers are accepted or rejected based on the updated configuration

You should monitor behavior after changes to confirm the limits behave as expected.

## What this page does not cover

This page does not cover:

- emergency actions such as locking down a lane
- worked examples for specific token decimals
- tool-specific execution steps

Those topics are covered in the following pages.