# 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

## Tutorial

### Source Blockchain Setup

### Destination Blockchain Setup

### Configure Cross-Chain Communication

#### Source Chain Configuration

#### Destination Chain Configuration

> **CAUTION: Educational Example Disclaimer**
>
> Please note, this page contains community examples only — these are not Chainlink products or services and are not
> supported or maintained by Chainlink. This code represents an example of using a Chainlink product or service, and is
> intended for demonstration and educational purposes only. It is provided "AS IS" and "AS AVAILABLE" without warranties
> of any kind, may not have been audited, and may omit checks or error handling. Each party intending to use this
> example code does so entirely at their own risk and must perform its own audits, security and code review, key
> management, and testing before any production deployment and ensure the operation and performance of such code matches
> expectations. Neither Chainlink Labs nor the Chainlink Foundation deploys, operates, monitors, maintains or endorses
> any deployment of this code. Note that this is not a Chainlink product, feature or service, and there are no
> commitments made with respect to the code, including compatibility with future Chainlink releases. You should not rely
> on this code without first conducting your own technical, engineering, and security review. This code is also outside
> the scope of any Chainlink bug bounty programs. Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node
> operators are responsible for outcomes due to errors in this example or how it is deployed or operated, or liable for
> any resulting claims or damages. Use of the Chainlink Network is subject to the Chainlink Foundation [Terms of
> Service](https://chain.link/terms), which provides important information and disclosures. By using this code, you
> acknowledge and agree to these terms.