Skip to main content

Send your first interchain message

This tutorial demonstrates how to send an interchain message to a pre-deployed TestRecipient contract.

Sending a message is a simple matter of calling Mailbox.dispatch. Make sure you have an account with funds on the origin chain.

Install the CLI:
npm install -g @hyperlane-xyz/cli
Send the message:
hyperlane send message --origin alfajores --destination basegoerli
tip

You can watch the progress of your message on explorer.hyperlane.xyz by searching for the transaction hash of your Mailbox.dispatch call.

Check the result

The TestRecipient has the following handle implementation:

function handle(
uint32 _origin,
bytes32 _sender,
bytes calldata _data
) external payable virtual override {
emit ReceivedMessage(_origin, _sender, msg.value, string(_data));
lastSender = _sender;
lastData = _data;
}

Check the logs to see your message delivery!

Testnet TestRecipient Addresses
ChainDomainAddressExplorer
Alfajores447870x6489d13AcAd3B8dce4c5B31f375DE4f9451E7b38alfajores.celoscan.io
Basegoerli845310x54Bd02f0f20677e9846F8E9FdB1Abc7315C49C38goerli.basescan.org
Fuji431130x44a7e1d76fD8AfA244AdE7278336E3D5C658D398testnet.snowtrace.io
Mumbai800010xF45A4D54223DA32bf7b5D43a9a460Ef3C94C713Bmumbai.polygonscan.com
Bsctestnet970xfbcD1c00a3d809f36cC1A15918694B17B32c0b6ctestnet.bscscan.com
Goerli50x4fC0Ac163eFFEb7890937cB89275B2C231880F22goerli.etherscan.io
Scrollsepolia5343510xa3AB7E6cE24E6293bD5320A53329Ef2f4DE73fCAsepolia.scrollscan.dev
Sepolia111551110xeDc1A3EDf87187085A3ABb7A9a65E1e7aE370C07sepolia.etherscan.io
Moonbasealpha12870x68729446296E413f0b7d6E85F2FD128465F0e5D0moonbase.moonscan.io
Optimismgoerli4200x518eA1802407b4b5AAF3aA92c1A803FfbA9FB7fegoerli-optimism.etherscan.io
Arbitrumgoerli4216130x07543860AE9E72aBcF2Bae9827b23621A64Fa416goerli.arbiscan.io
Polygonzkevmtestnet14420x11918DC33E067C5DA83EEF58E50F856398b8Df4Ctestnet-zkevm.polygonscan.com
Testnet Mailbox Addresses
ChainDomainAddressExplorer
Basegoerli845310x58483b754Abb1E8947BE63d6b95DF75b8249543Agoerli.basescan.org
Arbitrumgoerli4216130x13dABc0351407d5aAa0A50003a166A73b4febfDcgoerli.arbiscan.io
Optimismgoerli4200xB5f021728Ea6223E3948Db2da61d612307945eA2goerli-optimism.etherscan.io
Scrollsepolia5343510x3C5154a193D6e2955650f9305c8d80c18C814A68sepolia.scrollscan.dev
Alfajores447870xEf9F292fcEBC3848bF4bB92a96a04F9ECBb78E59alfajores.celoscan.io
Polygonzkevmtestnet14420x598facE78a4302f11E3de0bee1894Da0b2Cb71F8testnet-zkevm.polygonscan.com
Sepolia111551110xfFAEF09B3cd11D9b20d1a19bECca54EEC2884766sepolia.etherscan.io
Fuji431130x5b6CFf85442B851A8e6eaBd2A4E4507B5135B3B0testnet.snowtrace.io
Bsctestnet970xF9F6F5646F478d5ab4e20B0F910C92F1CCC9Cc6Dtestnet.bscscan.com
Goerli50x49cfd6Ef774AcAb14814D699e3F7eE36Fdfba932goerli.etherscan.io
Moonbasealpha12870x76189acFA212298d7022624a4633411eE0d2f26Fmoonbase.moonscan.io
Mumbai800010x2d1889fe5B092CD988972261434F7E5f26041115mumbai.polygonscan.com