# Enable your tokens in CCIP (Burn & Mint): Register from an EOA using Foundry
Source: https://docs.chain.link/ccip/evm/tutorials/cross-chain-tokens/register-from-eoa-burn-mint-foundry
Last Updated: 2025-10-30

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

## Guide Versions

- [Foundry (Burn & Mint)](/ccip/evm/tutorials/cross-chain-tokens/register-from-eoa-burn-mint-foundry)

- [Hardhat (Burn & Mint)](/ccip/evm/tutorials/cross-chain-tokens/register-from-eoa-burn-mint-hardhat)

In this tutorial you will:

1. Deploy a token on two chains using [Foundry](https://book.getfoundry.sh/).
2. Set up a `Burn Mint` token pool on each chain.
3. Configure and activate the pools in CCIP so your token becomes a Cross-Chain Token (CCT).
4. (Optional) Test the setup by minting and transferring tokens across networks.

> **NOTE: If you do not explicitly configure these features, default behavior applies**

## Before You Begin

## Tutorial

### Prerequisites

> **CAUTION: Before you continue**
>
> **Sepolia ETH**: required for Sepolia transactions (deploy/configure/send).
>
> **Arbitrum Sepolia ETH**: required for Arbitrum Sepolia transactions (deploy/configure).
>
> **LINK (optional)**: if you plan to pay for the cross-chain transfer with `LINK`, fund the sender
> wallet with testnet LINK on the **source chain**.
>
> You can use our [faucet](https://faucets.chain.link/) to get testnet LINK.

**Already have deployments? Skip only what you already have:**

- If you already have tokens deployed on **both** chains, skip **Deploy Tokens**.
- If you have deployed tokens but not the corresponding pools, you must still run **Deploy Token Pools** before continuing.
- If you already have tokens and **V2-compatible** token pools deployed on **both** chains, skip both sections and move straight on to [Enablement](#enablement).

**If you already have a V1 token pool deployed and want to use newer features or prepare for lane migration:**

- You will need to deploy a **V2-compatible token pool**
- Your existing V1 pool can continue to support current transfers
- Follow the migration guide to upgrade your setup without disrupting your existing deployment

> **Read**: [Migrate from V1 to V2 token pools](/ccip/evm/tutorials/cross-chain-tokens/migrate-from-v1-to-v2-burn-mint-foundry)

Before continuing, export the relevant addresses so subsequent scripts can find them:

```bash filename="Terminal"
export ETHEREUM_SEPOLIA_TOKEN=<your_token_address_on_sepolia>
export ETHEREUM_TESTNET_SEPOLIA_ARBITRUM_1_TOKEN=<your_token_address_on_arbitrum_sepolia>

export ETHEREUM_SEPOLIA_TOKEN_POOL=<your_token_pool_address_on_sepolia>
export ETHEREUM_TESTNET_SEPOLIA_ARBITRUM_1_TOKEN_POOL=<your_token_pool_address_on_arbitrum_sepolia>
```

### Enablement

These steps configure your token pools and activate them under the CCIP protocol so your token becomes a fully registered Cross-Chain Token (CCT).

### Cross-chain Token Operations

If all the previous steps were successful, your CCT token is now fully registered and activated under the CCIP protocol.
Use these next steps to mint and transfer your tokens across networks.

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