Docs

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

  1. Source chain: your contract calls the Axelar gateway (on EVM chains, callContract) and pays gas for the whole route to the gas service.
  2. 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.
  3. 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.

Your browser does not support SVG

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

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.

On this page