Skip to main content
Universal cross-chain communication protocol with decentralized validator set. Supports GMP (General Message Passing) and ITS (Interchain Token Service).

Notes

  • Uses chain name strings for destination (e.g. “ethereum”, “arbitrum”, “Polygon”) — NOT chain IDs
  • sendToken: Simple token transfer. callContract: GMP message. callContractWithToken: Both
  • GMP calls require pre-paying gas via GasService or including gasValue in ITS calls
  • ITS (Interchain Token Service) enables native cross-chain tokens without wrapping
  • Same ITS address (0xB5FB...) across all chains
  • tokenAddresses(symbol) to look up the local address of an Axelar-supported token
  • Finality: typically 2-5 minutes depending on source chain

Its names in a program

On Ethereum, Axelar is a namespace: its contracts need no import.

Deployments

ABI

AxelarGasServiceABI

import AxelarGasServiceABI from "./protocols/axelar/AxelarGasServiceABI.json"; Speaks for: gasService.
  • payNativeGasForContractCall(address sender, string destinationChain, string destinationAddress, bytes payload, address refundAddress) payable

AxelarGatewayABI

import AxelarGatewayABI from "./protocols/axelar/AxelarGatewayABI.json"; Speaks for: gateway.
  • callContract(string destinationChain, string contractAddress, bytes payload)
  • callContractWithToken(string destinationChain, string contractAddress, bytes payload, string symbol, uint256 amount)
  • sendToken(string destinationChain, string destinationAddress, string symbol, uint256 amount)
  • tokenAddresses(string symbol) view returns (address)

AxelarITSABI

import AxelarITSABI from "./protocols/axelar/AxelarITSABI.json"; Speaks for: its.
  • interchainTransfer(bytes32 tokenId, string destinationChain, bytes destinationAddress, uint256 amount, bytes metadata, uint256 gasValue) payable

Next steps