Avalanche Academy
Avalanche Academy
Course “Interchain Messaging”
In this course, you will learn how to build cross-L1 Solidity dApps with Interchain Messaging and Avalanche Warp Messaging.
Course Content
Interoperability
In the first section, we cover some basic concepts of interoperability in multi-chain systems. You will learn about examples of interoperability between blockchains and the terms “source,” “destination,” and “message.”
Avalanche Interchain Messaging
In this section, we learn what Avalanche Interchain Messaging is and what is abstracted away from the general dApp developer. You will also build your first cross-L1 dApps.
Securing Cross-Chain Communication
In this section, we look at techniques to secure cross-chain communication. We dive into signature schemes, multi-signature schemes, and the BLS multi-signature scheme.
Avalanche Interchain Messaging Protocol
Avalanche blockchains can natively interoperate between one another using AWM. You will learn about the AWM message format and how the message flow works.
Learning Outcomes
By the end of this course, students will:
- Understand the challenges of cross-chain communication
- Know what separates Avalanche Warp Messaging from other cross-chain communication protocols
- Understand the differences between Avalanche Warp Messaging and Teleporter
- Apply their knowledge by building cross-Avalanche L1 dApps, such as asset bridges
Topics
- Interoperability between blockchain
- Source, Message and Destination
- Recap of Multi-Chain Networks
- Interoperability in Multi-Chain Systems
- Finality Importance in Interoperabile Systems
- Trusted Third Parties
- Avalanche Starter Kit
- Initial Setup
- Close and Reopen Codespace
- Getting Test Tokens
- Contract Development with Foundry
- Interchain Messaging Basics
- ICM Basics
- Recap of Bytes, Encoding and Decoding
- Sending a Message
- Sender Contract
- Receiving a Message
- Receiver Contract
- Send a Message
- Adapt the contract
- Two-Way Communication
- Sender Contract
- Create the Sender Contract
- Receiver Contract
- Create the Receiver Contract
- Send a Roundtrip Message
- Adapt the Contracts
- Invoking Functions
- Encoding of multiple Values
- Create Simple Calculator Sender
- Create Simple Calculator Receiver
- Call simple Calculator
- Encoding the Function Name
- Extend the Calculator
- Interchain Messaging Registry
- How the ICM Registry works
- Interact with the ICM Registry
- Retrieving Interchain Messenger from the Registry
- Verify if Sender is Interchain Messaging
- Avalanche Warp Messaging
- Recap P-Chain
- Warp Message Format
- AWM Relayer
- Dataflow
- Message Pickup
- Message Delivery
- Load Considerations
- Trust Assumptions
- Running a Relayer
- Relayer Introduction
- Configuration Breakdown
- Configure & Run Relayer
- Restricting-the-relayer
- Restricting a Relayer
- Allowed Relayer
- Incentivizing a Relayer
- Incentivizing a Relayer
- Fee Data Flow
- Determining the Fee
- Setting Incentives
- Deploy Fee Token Contract
- Incentivize an AWM relayer
- Interaction Flow With Fees
Completion Certificate

