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: interconnected, permissionless smart contracts, automating developer tasks, delivering unified UX across platforms. Expand your application to 10X as many active users as the leading Web3 environment.
Expand into new ecosystems with a single click. Grow with the network as new connections tap a widening circle of users and liquidity.

Axelar provides this transport hub 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.

  $8B+
Transferred
1M+
Transactions
  60+
Blockchains
  235K+
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);
}