Інтеграція з Axelar
Axelar — децентралізована мережа кросс-чейн комунікації. На відміну від мостів з multisig валідаторами (Multichain, Ronin), Axelar використовує proof-of-stake мережу з ~75 валідаторами та threshold підписами. Компромісс вимагає контролю 2/3 валідаторів по стейку — значно вищий поріг атаки, ніж 5-з-9 multisig.
Що умає Axelar
GMP (General Message Passing) — передача довільних повідомлень між чейнами. Не тільки токени: можна викликати функцію смарт-контракту на іншому чейні з довільними даними.
Canonical token bridging — стандартизований трансфер токенів. USDC через Axelar — це або Circle's нативний USDC (через Circle CCTP) або Axelar Wrapped USDC (axlUSDC), залежно від конфігурації.
Squid — DEX агрегатор на основі Axelar, дозволяє кросс-чейн своп в одну транзакцію (своп на вихідному чейні + bridge + своп на цільовому).
GMP інтеграція
Контракт на вихідному чейні
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { AxelarExecutable } from "@axelar-network/axelar-gmp-sdk-solidity/contracts/executable/AxelarExecutable.sol";
import { IAxelarGateway } from "@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IAxelarGateway.sol";
import { IAxelarGasService } from "@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IAxelarGasService.sol";
contract SourceContract {
IAxelarGateway public gateway;
IAxelarGasService public gasService;
constructor(address _gateway, address _gasService) {
gateway = IAxelarGateway(_gateway);
gasService = IAxelarGasService(_gasService);
}
function sendCrossChainMessage(
string calldata destinationChain, // "Polygon", "avalanche", "binance"
string calldata destinationAddress, // адреса контракту-одержувача
bytes calldata payload
) external payable {
// Оплачуємо газ для виконання на цільовому чейні
gasService.payNativeGasForContractCall{value: msg.value}(
address(this),
destinationChain,
destinationAddress,
payload,
msg.sender
);
// Відправляємо повідомлення
gateway.callContract(destinationChain, destinationAddress, payload);
}
}
Контракт на цільовому чейні
contract DestinationContract is AxelarExecutable {
event MessageReceived(string sourceChain, string sourceAddress, bytes payload);
constructor(address gateway) AxelarExecutable(gateway) {}
// Викликається Axelar коли повідомлення доставлено
function _execute(
string calldata sourceChain,
string calldata sourceAddress,
bytes calldata payload
) internal override {
// Декодуємо payload
(address recipient, uint256 amount) = abi.decode(payload, (address, uint256));
// Виконуємо бізнес-логіку
_processMessage(sourceChain, sourceAddress, recipient, amount);
emit MessageReceived(sourceChain, sourceAddress, payload);
}
}
Оплата газу на цільовому чейні
Ключова деталь Axelar GMP — Gas Service. Користувач платить газ для обох чейнів в одній транзакції (на вихідному чейні). Axelar Gas Service конвертує нативний токен та оплачує relayers на цільовому чейні.
Розраховуємо потрібний газ через AxelarGMPRecoveryAPI:
import { AxelarQueryAPI, Environment, GasToken } from "@axelar-network/axelarjs-sdk";
const api = new AxelarQueryAPI({ environment: Environment.MAINNET });
const gasEstimate = await api.estimateGasFee(
"Ethereum", // вихідний чейн
"Polygon", // цільовий чейн
GasToken.ETH,
300_000, // ліміт газу на цільовому
1.1 // 10% буфер
);
// gasEstimate — сума у wei для передачі в payNativeGasForContractCall
Token Transfer з GMP
Для трансфер токена + вилик функції на цільовому чейні — використовуємо callContractWithToken:
function sendTokenAndCall(
string calldata destinationChain,
string calldata destinationAddress,
bytes calldata payload,
string calldata symbol, // "USDC", "WETH"
uint256 amount
) external payable {
IERC20(gateway.tokenAddresses(symbol)).transferFrom(msg.sender, address(this), amount);
IERC20(gateway.tokenAddresses(symbol)).approve(address(gateway), amount);
gasService.payNativeGasForContractCallWithToken{value: msg.value}(
address(this), destinationChain, destinationAddress, payload, symbol, amount, msg.sender
);
gateway.callContractWithToken(destinationChain, destinationAddress, payload, symbol, amount);
}
Підтримувані чейни
Axelar підтримує 50+ чейнів: Ethereum, Polygon, Avalanche, BNB Chain, Fantom, Arbitrum, Optimism, Base, Linea, Scroll, Near, Cosmos екосистема (через IBC).
Cosmos інтеграція — унікальна перевага Axelar: єдиний із major кросс-чейн протоколів з реальним EVM ↔ Cosmos з'єднанням.
Squid інтеграція для кросс-чейн свопів
import { Squid } from "@0xsquid/sdk";
const squid = new Squid({ baseUrl: "https://apiplus.squidrouter.com" });
await squid.init();
const { route } = await squid.getRoute({
fromAddress: userAddress,
fromChain: "1", // Ethereum
fromToken: "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", // ETH
fromAmount: "1000000000000000000", // 1 ETH
toChain: "137", // Polygon
toToken: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", // USDC
toAddress: recipientAddress,
slippage: 1.0, // 1%
enableBoost: true,
});
// Виконуємо своп
const tx = await signer.sendTransaction(route.transactionRequest);
Інтеграція Axelar GMP — 2-4 тижні. Включає: деплой контрактів на кілька чейнів, настройку оплати газу, моніторинг статусу транзакцій через AxelarScan API, тестування на testnet (Axelar testnet підтримує всі major EVM testnets).







