The Axelarnet module is Axelar’s gateway for Cosmos SDK chains that communicate over IBC. It maintains a registry of IBC-connected chains, maps each chain to an IBC channel path, routes incoming and outgoing transfers viaDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/axelarnetwork/axelar-core/llms.txt
Use this file to discover all available pages before exploring further.
ibc-transfer, and supports IBC hook-based general message passing. Any Cosmos chain that shares an IBC channel with Axelar and is registered in this module can send and receive assets through the Axelar network.
Cosmos Chain Registry
Registers Cosmos-based chains with their address prefix, native asset denom, and IBC channel path.
Asset Registration
Links IBC denominations to Axelar’s internal asset registry so they can be transferred cross-chain.
IBC Transfer Routing
Routes pending IBC transfers to registered channels and retries failed transfers using the correct IBC path.
General Message Routing
Handles IBC hook payloads that encode GMP calls, routing approved messages to their destination chains.
Key Concepts
CosmosChain
ACosmosChain entry records a registered Cosmos-based chain with:
- Name — the Axelar chain name (e.g.,
osmosis,cosmoshub) - IBCPath — the IBC channel path (e.g.,
transfer/channel-0) - AddrPrefix — the Bech32 prefix for addresses on that chain (e.g.,
osmo) - NativeAssets — denoms native to that chain
IBC Path
The IBC path binds a Cosmos chain name to antransfer/channel-N string. Axelar uses this to dispatch outbound IBC transfers on the correct channel. Only one path can be registered per chain at a time.
IBCTransfer
Pending IBC transfers are queued by the module and flushed each block (up toEndBlockerLimit). If a transfer fails, it enters a retry queue accessible via retry-ibc-transfer.
IBC Hooks
When an IBC transfer arrives at Axelar with a memo field containing a valid GMP payload, the axelarnet module parses it and creates aGeneralMessage in Nexus, which is then routed to the destination chain.
Adding a Cosmos Chain
Register a new Cosmos chain with its IBC path and address prefix:The
add-cosmos-based-chain transaction is restricted to governance-authorized accounts (controllers or governance proposals). The chain must not already be registered under the same name.Asset Registration
After adding a chain, register the assets that can be transferred to and from it:Transfer Routing
Outbound transfers to Cosmos chains are executed in the end blocker. You can trigger an immediate routing attempt:Retrying Failed Transfers
If an IBC transfer times out or fails due to a channel issue, retry it by sequence number:General Message Routing
Route an approved GMP message to its destination chain. This is called by vald after Nexus marks a message as approved:Fee Collector Registration
Register a Bech32 account to collect transfer fees on the Axelar chain:Module Parameters
Axelarnet Parameters
Axelarnet Parameters
Number of blocks within which an IBC transfer must be relayed before it is considered timed out and eligible for retry. Default:
85,000 blocks (17,000 × 5 for 1s block time).Maximum number of IBC transfers dispatched per block. Default:
20.Maximum number of operations processed by the end blocker per block. Default:
50.Minimum governance deposit amounts required for call-contract proposals, keyed by destination chain and contract address.
The
RouteTimeoutWindow was updated from 17,000 to 85,000 blocks in v1.3.0 to accommodate the switch to 1-second block times. Cosmos chain relayers should ensure their relay windows are consistent with this setting.