General Message Passing
Call contracts on any chain connected to Axelar.
General Message Passing (GMP) lets a contract on one chain call a contract on any other chain connected to Axelar. With GMP you can:
- call a contract on chain B from chain A,
- call a contract on chain B from chain A and attach gateway tokens (consensus EVM chains only; to move any other token, use the Interchain Token Service).
The security of your app is limited by the security of the chains it integrates with. Do your due diligence on every chain your contracts are deployed to.
Using an AI agent?
Give it llms.txt: an index of every page
of these docs, each linked to its Markdown, so the agent can read the pages it
needs. The bot icon next to GitHub in the sidebar copies its link, and Copy
Markdown at the top of each page copies that page.
How a message is delivered
- Source chain: your contract calls the Axelar gateway (on EVM chains,
callContract) and pays gas for the whole route to the gas service. - Axelar: the message is verified against the source chain, by Axelar validators for consensus chains or by Amplifier verifiers for Amplifier chains, and routed to the destination chain.
- Destination chain: the gateway records the approved message, and a relayer calls your destination contract, which checks the approval with the gateway before running its logic.
You can follow any message on Axelarscan (mainnet | testnet). If it gets stuck, see Track and recover. For the details of each step, see Message flow and Message verification.
Integrations
EVM
Send and receive messages from Solidity contracts through the Axelar gateway.
Solana
Send and receive messages from Solana programs.
Sui
Send and receive messages from Sui Move packages.
Stellar
Send and receive messages from Soroban contracts.
XRPL
Send messages from the XRP Ledger.
Cosmos
Send and receive messages from Cosmos chains over IBC.
Tools
- Axelarscan: track messages, and recover them if they get stuck.
- AxelarJS SDK: query and recover messages, and estimate gas, from JavaScript.
- Examples and tutorials: sample apps, a local development environment and step-by-step tutorials.
- References: contract source code and repositories.