Welcome to the Course
Learn about sending assets to another L1s with Avalanche Interchain Token Transfer.
In this course, you will learn how to transfer assets across multiple Avalanche blockchains with Avalanche Interchain Token Transfer ICTT.
Why Take This Course?
A significant innovation in blockchain is the development of multi-chain systems, like Avalanche, which provide a significant improvement in scalability, interoperability, and flexibility. At the core of these multi-chain systems is the ability to run multiple blockchains that communicate. Each chain's VM is optimized for specialized use cases, thereby boosting the network's overall performance.
Cross-chain communication is a crucial building block of multi-chain systems. Utilizing Avalanche Interchain Messaging and Interchain Token Transfer is an incredibly easy way to build cross-Avalanche L1 dApps, since developers can build on top of an extensive, audited development framework.
Transfering tokens between multiple chains is a common use case in multi-chain systems. This course will help you understand how to transfer assets between multiple Avalanche blockchains using the Avalanche Interchain Token Transfer protocol.
Course Content
Avalanche Starter Kit
In this section, you will learn how to set up your development environment with the Avalanche Starter Kit. Using this development environment you will be able to perform the exercises in this course.
Tokens
In this section, you will learn about the different types of tokens that can be transferred between Avalanche blockchains. We will cover ERC-20 and native tokens and interact with them on chain. Furthermore, you will learn what wrapped native tokens are and how they can be used to transfer assets between chains.
Token Bridging
Next we will talk about the high level concepts of token bridging and use a demo bridge.
Interchain Token Transfer
In this chapter we will look at the design of Avalanche Interchain Token Transfer. You will learn about the file structure of the contracts and the concepts of the token home and token remote.
ERC-20 to ERC-20 bridge
You will learn how to set up a bridge to bridge an ERC-20 token from one L1 blockchain to another.
Token on multiple chains
Here you will learn about the concept of multi-hops and how tokens can be bridged between multiple remote chains.
Native to ERC-20 bridge
In this chapter you will learn how to bridge a native token as an ERC-20 token to another chain.
Send and Call
In this chapter you will learn how to call smart contracts with the tokens after sending them to another chain.
Cross-Chain Token Swaps
In this chapter you will learn how to swap tokens on another chain.
Prerequisites
Avalanche
This course is intended for people with knowledge about Cross-Chain communication protocols, and a solid understanding of the basic concepts of Avalanche. You should be familiar with these concepts:
- Avalanche Architecture: Be familiar with Avalanche blockchains.
- Interchain Messaging: Know how to communicate between two Avalanche blockchains with ICM.
If some of this is not clear, we strongly recommend taking the Avalanche Fundamentals, Multi-Chain Architecture, and Interchain Messaging courses first.
Software Development
You will need a general understanding of Software Development. You won't have to write a lot of code, but you will have to be able to understand some. Therefore, we recommend:
- Solidity: Basic Knowledge, familiarity with types and interfaces.
- Foundry: Familiarity with Foundry will help to deploy and interact with contracts.
Learning Outcomes
By the end of this course, you will:
- Understand what Avalanche Interchain Token Transfer is and when to use it.
- Understand the differents options on how you can transfer assets between multiple chains.
- Apply the knowledge gained in the course by enabiling assets to be transfered between multiple Avalanche blockchains.
We are still working on enabling some features, so in the future you will be able to evaluate your own understanding of the material through quizzes and claim a certificate for successful completion at the end.