ICM Infrastructure Overview
Overview of the ICM infrastructure components you'll set up on your L1.
Now that you understand how Interchain Messaging works at the protocol level, it's time to set up the infrastructure on your own L1. In this section, you'll deploy and configure all the components needed for cross-chain communication.
What You'll Set Up
The ICM infrastructure consists of three core components:
┌──────────────────────┐ ┌──────────────────────┐
│ Fuji C-Chain │ │ Your L1 │
│ │ │ │
│ TeleporterMessenger │◄───────── Relayer ────────►│ TeleporterMessenger │
│ TeleporterRegistry │ │ TeleporterRegistry │
│ (Pre-deployed) │ │ (You deploy these) │
└──────────────────────┘ └──────────────────────┘-
TeleporterMessenger — The core ICM contract that handles sending and receiving cross-chain messages. It's already deployed on Fuji C-Chain, so you only need to deploy it on your L1.
-
TeleporterRegistry — Manages TeleporterMessenger versions. Required by ICTT contracts and other dApps building on ICM. Takes the messenger address as a constructor argument.
-
Relayer — An off-chain service that picks up messages from the source chain, aggregates BLS signatures from validators, and delivers them to the destination chain. Without a running relayer, messages will be created but never delivered.
Prerequisites
Before proceeding, make sure you have:
- An L1 deployed on Fuji testnet — If you haven't deployed one yet, follow the L1 deployment guide
- Core Wallet connected to your L1
- Test AVAX on both Fuji C-Chain and your L1 (for gas fees and funding the messenger deployment)
The TeleporterMessenger and TeleporterRegistry are already deployed on Fuji C-Chain. You only need to deploy them on your L1.
Deployment Flow
We'll go through the following steps:
- Deploy TeleporterMessenger on your L1
- Deploy TeleporterRegistry on your L1
- Set up a Relayer between Fuji C-Chain and your L1
- Test the connection by sending a cross-chain message
Is this guide helpful?



