# Set Token Pool Rate Limits Using Foundry
Source: https://docs.chain.link/ccip/evm/tutorials/cross-chain-tokens/update-rate-limiters-foundry
Last Updated: 2026-04-27

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

## Guide Versions

- [Foundry](/ccip/evm/tutorials/cross-chain-tokens/update-rate-limiters-foundry)

- [Hardhat](/ccip/evm/tutorials/cross-chain-tokens/update-rate-limiters-hardhat)

In this tutorial you will:

1. Review current standard rate limiter configurations for your deployed token pool.
2. Update outbound and inbound standard rate limiter configurations.
3. Verify the updated configurations.
4. Test standard rate limiter enforcement with a cross-chain token transfer.
5. Optionally configure and test rate limits for faster than finality transfers.

## Before You Begin

## Tutorial

> **TIP: Prerequisites**
>
> This tutorial assumes you have already deployed tokens and token pools on both chains. If not, complete one of the
> registration tutorials first:
>
> [Burn & Mint](/ccip/evm/tutorials/cross-chain-tokens/register-from-eoa-burn-mint-foundry)
>
> [Lock & Mint](/ccip/evm/tutorials/cross-chain-tokens/register-from-eoa-lock-mint-foundry)
>
> Make sure your token and token pool addresses are exported as environment variables:
>
> ```bash
> export ETHEREUM_SEPOLIA_TOKEN=0x...
> export ETHEREUM_TESTNET_SEPOLIA_ARBITRUM_1_TOKEN=0x...
>
> export ETHEREUM_SEPOLIA_TOKEN_POOL=0x...
> export ETHEREUM_TESTNET_SEPOLIA_ARBITRUM_1_TOKEN_POOL=0x...
> ```
>
> This tutorial supports both CCT registration models:
>
> In the Burn & Mint model, rate limiters are configured on the `BurnMintTokenPool` on each chain.
>
> In the Lock & Mint model, rate limiters are configured on the token pools: the source-chain&#x20;
> `LockReleaseTokenPool` and the destination-chain `BurnMintTokenPool`. The&#x20;
> `ERC20LockBox` is not rate-limited and is not updated by the scripts in this tutorial.

> **CAUTION: Educational Example Disclaimer**
>
> This page includes an educational example to use a Chainlink system, product, or service and is provided to
> demonstrate how to interact with Chainlink's systems, products, and services to integrate them into your own. This
> template is provided "AS IS" and "AS AVAILABLE" without warranties of any kind, it has not been audited, and it may be
> missing key checks or error handling to make the usage of the system, product or service more clear. Do not use the
> code in this example in a production environment without completing your own audits and application of best practices.
> Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node operators are responsible for unintended outputs
> that are generated due to errors in code.