Don't miss Build Games$1M Builder Competition

Welcome to the Course

Learn how to bridge native tokens between Avalanche L1s using Interchain Token Transfer (ICTT).

In this course, you'll learn how to solve three common token bridging problems using Avalanche's Interchain Token Transfer (ICTT) protocol.

The Three Problems ICTT Solves

Problem 1: Use an ERC-20 as Your L1's Native Token

Scenario: You want to use USDC (an ERC-20 on C-Chain) as the native gas token for your L1.

Fuji C-Chain                         Your L1
┌─────────────────────┐             ┌─────────────────────┐
│  USDC (ERC-20)      │ ─────────▶  │  Native Gas Token   │
│  ERC20TokenHome     │     ICM     │  NativeTokenRemote  │
└─────────────────────┘             └─────────────────────┘

In this chapter, you'll use real USDC on Fuji from the Circle Faucet (1 USDC per request).

Problem 2: Export Your L1's Native Token to C-Chain

Scenario: Your L1 has a custom native token (TEST) and you want users on C-Chain to be able to use it as an ERC-20.

Your L1                              Fuji C-Chain
┌─────────────────────┐             ┌─────────────────────┐
│  TEST (Native)      │ ─────────▶  │  TEST (ERC-20)      │
│  NativeTokenHome    │     ICM     │  ERC20TokenRemote   │
└─────────────────────┘             └─────────────────────┘

Problem 3: Use AVAX as Your L1's Native Token

Scenario: You want to use AVAX (the native token on C-Chain) as the native gas token for your L1.

Fuji C-Chain                         Your L1
┌─────────────────────┐             ┌─────────────────────┐
│  AVAX (Native)      │ ─────────▶  │  Native Gas Token   │
│  NativeTokenHome    │     ICM     │  NativeTokenRemote  │
└─────────────────────┘             └─────────────────────┘

Course Overview

ChapterUse CaseSource TokenResult
1ERC-20 → NativeUSDC on Fuji C-ChainUSDC becomes your L1's gas token
2Native → ERC-20Custom token on your L1Your token becomes an ERC-20 on C-Chain
3Native → NativeAVAX on Fuji C-ChainAVAX becomes your L1's gas token

Prerequisites

Before starting this course, we recommend completing:

What You'll Need

For this course, make sure you have:

  1. Test AVAX on Fuji C-Chain for gas fees (Fuji Faucet)
  2. Core Wallet browser extension installed
  3. For Chapter 1: 1 USDC from the Circle Faucet (select "Avalanche Fuji")

Key Concepts

Native Minter Precompile

Chapters 1 and 3 require creating an L1 with the Native Minter precompile enabled. This precompile allows authorized contracts to mint native tokens.

Collateralization

When minting native tokens, the bridge requires collateral to back the minted supply. This ensures 1:1 backing.

Token Homes and Remotes

  • TokenHome: Deployed on the chain where the original token lives. Locks/releases tokens.
  • TokenRemote: Deployed on the destination chain. Mints/burns tokens.

Let's Get Started!

Each chapter is independent—complete them in order or jump to the problem you need to solve.

Is this guide helpful?