The shortest
path to scale

Axelar is the Web3 interoperability platform. An open stack to connect all blockchains. A single click to use and build everywhere.

>:( 0 )░

Trusted
by Leaders

DeFi

RWAs

Infrastructure

Wallets

Enterprise

And 150+ integrations across 9 verticals

>:( 0 )░

Programmable Interoperability

Ethereum has built programmable money.

Axelar is building programmable interoperability.

Imagine a network of transport hubs, connecting cities and industries. Axelar is this network for Web3: smart-contract support allows anyone to deploy from the cross-chain stack itself to all chains in under 10 seconds, reaching 10X as many active users as the leading Web3 environment.
Axelar gives developers the power to easily build their own connections, customizing security, latency and other cross-chain rules in an open framework.

Axelar enables this on a performant blockchain: programmable, secure and scalable.
[/#]

Programmable

Axelar supports smart contracts, making it unique among cross-chain networks – delivering true chain abstraction for both users and developers with minimal overhead.

[/#]

Scalable

Today, Axelar connects more blockchains than any other interoperability provider – and the gap is widening. Axelar is truly the shortest path to scale.

[/#]

Secure

Axelar runs battle-tested proof-of-stake verification. Risk is further mitigated via superior topology and application-layer policies like rate limits.

  $10B+
Transferred
2.5M+
Transactions
  69+
Blockchains
  1.3M+
SDK Downloads
75
POS Validators

>:( 0 )░

Case Studies

Use case
Rebalancing
J.P.Morgan's Onyx can rebalance large portfolios of tokenized assets on any chain
Use case
Governance
Uniswap uses Axelar for critical upgrades and multichain expansion
Use case
Onboarding
dYdX V4 onboards users from anywhere in one click
Use case
Multichain DeFi
Sommelier vaults run complex logic on Cosmos for yield strategies on Arbitrum

>:( 0 )░

Build Once,
Run Everywhere

Axelar supports smart contracts at the cross-chain layer, giving blockchain developers super powers to scale their applications with ease.

DEFI

Send a token cross-chain to Uniswap with instructions to execute a trade.

RWA

Send a 'safeMintO function call to mint a real-world asset as an NFT on a connected chain.

GAMING

Users from various blockchains pick a number and place a bet in the token of their choice.

Solidity (Ethereum)
function triggerInterchainNftMint() {
    bytes memory mintNftPayload = abi.encodeWithSignature(
        "safeMint(address,uint256)",
        receivingAddr,
        _tokenId
    );
    gateway.callContract(_destChain, _destContractAddr, mintNftPayload);
}

//Receive safeMint() call on dest chain and send msg to NFT 
function _execute(string calldata, string calldata, bytes calldata _payload) {
    (bool success, bytes memory data) = address(nft).call(_payload);
    require(success, "safeMint call reverted")

}
Solidity (Ethereum)
function placeBet(uint256 _guess)  {
        gasService.payNativeGasForContractCallWithToken{value: msg.value}(
            address(this),
            _destChain,
            _destContractAddr,
            abi.encode(msg.sender, _guess),
            _symbol,
            _amount,
            msg.sender
        );
        gateway.callContractWithToken(
            _destChain,
            _destContractAddr,
            encodedBetPayload,
            _symbol,
            _amount
        );
    }
function _executeWithToken(bytes calldata _payload)  {
        (address player, uint256 guess) = abi.decode(_payload, (address, uint256));
        if (won) _payOutAllTokensToWinner(player);
    }
Solidity (Ethereum)
function interchainSwap() external payable {
        ISwapRouter.ExactInputSingleParams memory swapParams = ISwapRouter
            .ExactInputSingleParams({
                tokenIn: address(tokenIn),
                tokenOut: address(tokenOut),
                recipient: msg.sender,
                amountIn: amount,
            });
        gateway.callContract(
            destChain,
            destContractAddr,
            abi.encode(swapParams),
        );
    }
function _execute(bytes calldata _payload) internal override {
   ISwapRouter.ExactInputSingleParams memory decodedGmpMessage = abi
        .decode(_payload, (ISwapRouter.ExactInputSingleParams));
   swapRouter.exactInputSingle(decodedGmpMessage);
}