# Deploy & Register Cross-Chain Tokens with Remix IDE
Source: https://docs.chain.link/ccip/v1/evm/tutorials/cross-chain-tokens/register-from-eoa-remix
Last Updated: 2025-05-19

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

## Overview

This tutorial guides you through the process of enabling two tokens for cross-chain transfers. Upon completion, the system will allow users to **transfer tokens** seamlessly between selected blockchains.

**Expected Outcomes**

- **Two Tokens**: Deploy and configure one token on each blockchain
- **Registration**: Register the tokens in CCIP on both blockchains
- **Two Token Pools**: Deploy and set up the necessary token pools to enable cross-chain transfers

## Tutorial Structure

This interactive tutorial provides a structured learning experience:

### Progress Tracking

- **Visual Dashboard**: A navigation panel tracks progress
- **Clear Checkpoints**: Automatic marking of completed steps
- **Address Management**: System tracking of deployed contracts
- **Guided Flow**: Logically sequenced steps

### Success Guidelines

✓ Complete steps sequentially - each step builds on previous work\
✓ Maintain a record of contract addresses for reference\
✓ Mark your progress using the provided checkboxes\
✓ Input contract addresses as prompted

## Tools Needed

> **NOTE: Development Environment**
>
> No additional development environment or installations needed - everything runs directly in your browser!

### Web Browser

Any modern web browser

### Remix IDE

[Remix IDE](https://remix.ethereum.org) - Browser-based Ethereum IDE for smart contract development and deployment

### MetaMask

[MetaMask](https://metamask.io/) - Blockchain wallet for connecting to blockchains and signing transactions

## Before You Begin

<TutorialBlockchainSelector client:load />

## Tutorial

### Source Blockchain Setup

<AdminSetupStep chain="source" client:load />

<SetPoolStep chain="source" client:load />

### Destination Blockchain Setup

<AdminSetupStep chain="destination" client:load />

<SetPoolStep chain="destination" client:load />

### Configure Cross-Chain Communication

#### Source Chain Configuration

<ChainUpdateBuilderWrapper chain="source" client:load />

#### Destination Chain Configuration

<ChainUpdateBuilderWrapper chain="destination" client:load />

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