> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Axelar (axelar)

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

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

| Fact | Value |
| - | - |
| Category | Cross-chain messaging |
| Family | none |
| Namespace | `Axelar` on ethereum, optimism, polygon, base, arbitrum, avalanche |
| Chains | ethereum, optimism, polygon, base, arbitrum, avalanche |

## 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.

```ts theme={null}
function main() {
  // Ethereum's gasService, `0x2d5d7d31F671F86C782533cc367F14109a082712`.
  require(Axelar.GasService != 0);
}
```

## Deployments

| Chain | Contract | Address | In a program |
| - | - | - | - |
| [Ethereum](https://docs.eco.com/sauce-sdk/reference/chains/ethereum.md) | gasService | `0x2d5d7d31F671F86C782533cc367F14109a082712` | `Axelar.GasService` |
| [Ethereum](https://docs.eco.com/sauce-sdk/reference/chains/ethereum.md) | gateway | `0x4F4495243837681061C4743b74B3eEdf548D56A5` | `Axelar.Gateway` |
| [Ethereum](https://docs.eco.com/sauce-sdk/reference/chains/ethereum.md) | its | `0xB5FB4BE02232B1bBA4dC8f81dc24C26980dE9e3C` | `Axelar.ITS` |
| [Optimism](https://docs.eco.com/sauce-sdk/reference/chains/optimism.md) | gateway | `0xe432150cce91c13a887f7D836923d5597adD8E31` | `Axelar.Gateway` |
| [Optimism](https://docs.eco.com/sauce-sdk/reference/chains/optimism.md) | its | `0xB5FB4BE02232B1bBA4dC8f81dc24C26980dE9e3C` | `Axelar.ITS` |
| [Polygon](https://docs.eco.com/sauce-sdk/reference/chains/polygon.md) | gateway | `0x6f015F16De9fC8791b234eF68D486d2bF203FBA8` | `Axelar.Gateway` |
| [Polygon](https://docs.eco.com/sauce-sdk/reference/chains/polygon.md) | its | `0xB5FB4BE02232B1bBA4dC8f81dc24C26980dE9e3C` | `Axelar.ITS` |
| [Base](https://docs.eco.com/sauce-sdk/reference/chains/base.md) | gateway | `0xe432150cce91c13a887f7D836923d5597adD8E31` | `Axelar.Gateway` |
| [Base](https://docs.eco.com/sauce-sdk/reference/chains/base.md) | its | `0xB5FB4BE02232B1bBA4dC8f81dc24C26980dE9e3C` | `Axelar.ITS` |
| [Arbitrum One](https://docs.eco.com/sauce-sdk/reference/chains/arbitrum.md) | gateway | `0xe432150cce91c13a887f7D836923d5597adD8E31` | `Axelar.Gateway` |
| [Arbitrum One](https://docs.eco.com/sauce-sdk/reference/chains/arbitrum.md) | its | `0xB5FB4BE02232B1bBA4dC8f81dc24C26980dE9e3C` | `Axelar.ITS` |
| [Avalanche C-Chain](https://docs.eco.com/sauce-sdk/reference/chains/avalanche.md) | gateway | `0x5029C0EFf6C34351a0CEc334542cDb22c7928f78` | `Axelar.Gateway` |
| [Avalanche C-Chain](https://docs.eco.com/sauce-sdk/reference/chains/avalanche.md) | its | `0xB5FB4BE02232B1bBA4dC8f81dc24C26980dE9e3C` | `Axelar.ITS` |

## 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

* [Protocols](https://docs.eco.com/sauce-sdk/reference/protocols.md): the other protocols, by what they do.
* [Protocols and tokens](https://docs.eco.com/sauce/names.md): calling a contract by its namespace, or through its ABI.
* [Glossary](https://docs.eco.com/sauce/glossary.md): the words these pages use, in plain terms.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.