К основному содержанию
скилл CX Codex

axelar-gmp — скилл для Claude Code: что делает и как установить

Помогает строить межсетевые вызовы между Hedera и EVM через Axelar GMP. Нужен при отправке транзакций через шлюз, настройке приёмников и связке с HSS.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add hedera-dev/hedera-skills --skill axelar-gmp -a claude-code
Открыть на GitHub

Что делает axelar-gmp

Скилл задаёт архитектуру Axelar General Message Passing на Hedera. Он учит агента разделять транспорт моста и бизнес-логику: на стороне источника выставляется контракт-отправитель с проверкой authorizedCaller, а на стороне назначения — контракт AxelarExecutable, сверяющий адрес источника через хэш в нижнем регистре.

Порядок вызовов критичен. Сначала контракт обязан оплатить релей через payNativeGasForContractCall, и только затем вызывать callContract в шлюзе. Сдачу за газ должен забирать оркестратор. Числовые ID здесь сломают маршрутизацию. Axelar принимает исключительно строковые имена сетей вроде "hedera" или "ethereum-sepolia".

Для регулярных циклов логика связывается с контрактом Hedera Schedule Service (0x16b). Если лимит расписания исчерпан, контракт переходит в режим ожидания и выставляет флаг сбоя для ручного перезапуска владельцем.

Какие задачи решает

  • настроить вызовы IAxelarGateway и оплату газа через IAxelarGasService
  • собрать приёмник на базе AxelarExecutable с проверкой адреса отправителя
  • изолировать транспортные контракты моста от прикладной логики исполнения
  • связать межсетевую отправку с системным планировщиком Hedera (0x16b)

Примеры запросов агенту

  • Напиши контракт отправителя Axelar GMP на Hedera с предварительной оплатой газа
  • Создай контракт приёмника на базе AxelarExecutable с проверкой адреса в нижнем регистре
  • Настрой оркестратор с планировщиком HSS (0x16b) для регулярной отправки сообщений в EVM

Как установить axelar-gmp

1Через Skills CLI (Vercel)

npx skills add hedera-dev/hedera-skills --skill axelar-gmp -a claude-code

2Вручную: положить файлы

~/.claude/skills/axelar-gmp/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/axelar-gmp/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о axelar-gmp

Как установить axelar-gmp в Claude Code?

Выполните команду npx skills add hedera-dev/hedera-skills --skill axelar-gmp -a claude-code. Файл будет сохранён по пути ~/.claude/skills/axelar-gmp/SKILL.md.

Что делает скилл axelar-gmp?

Он предоставляет готовые шаблоны и правила взаимодействия смарт-контрактов Hedera с EVM-сетями через шлюз Axelar GMP и системный сервис расписаний Hedera.

Почему нельзя использовать числовой chain ID в шлюзе?

Протокол Axelar маршрутизирует сообщения по строковым идентификаторам сетей. Передача числового идентификатора вместо строки вроде "hedera" приведёт к ошибке выполнения транзакции.

Исходный текст

SKILL.md · Apache-2.0
---
name: axelar-gmp
description: >
  Axelar General Message Passing (GMP) on Hedera. Use when sending or receiving cross-chain
  contract calls via Axelar Gateway (callContract, payNativeGasForContractCall), building
  AxelarExecutable receivers, wiring Hedera↔EVM destinations, or separating bridge transport
  from destination handlers (orchestrated / scheduled flows).
---

# Axelar GMP (Hedera)

**GMP pattern:** encode a payload on the source chain, pay Axelar gas in native token, call the Gateway, then decode and act on the destination behind an allowlisted source.

```text
Source app → BridgeSender (pay gas + gateway.callContract)
                 → Axelar relayers
                      → AxelarExecutable._execute → Handler
```

On Hedera, orchestration often pairs GMP with **HSS** (`0x16b`) so a contract can self-reschedule and dispatch each cycle. Keep bridge transport behind a thin sender interface so the orchestrator stays bridge-agnostic.

## Quick Reference

| Piece | Role |
| ----- | ---- |
| `IAxelarGateway` | `callContract(destChain, destAddress, payload)` |
| `IAxelarGasService` | `payNativeGasForContractCall{value}` before the gateway call |
| `AxelarExecutable` | Destination base; override `_execute(...)` |
| Chain names | Axelar string IDs — e.g. `"hedera"`, `"ethereum-sepolia"` (not numeric chain IDs) |
| Addresses | EVM string form of the peer contract (checksummed `0x…`) |

See [references/hedera-axelar.md](references/hedera-axelar.md) for chain-name conventions and SDK imports. See [references/examples.md](references/examples.md) for sender / receiver sketches.

## Critical: Gas Then Gateway

Always pay gas **before** `callContract`. Use `msg.value > 0` for relay fees; refund address should be the funded orchestrator (or plan owner), not a random EOA.

```solidity
gasService.payNativeGasForContractCall{ value: msg.value }(
    address(this),       // sender contract
    destinationChain,    // Axelar name string
    destinationAddress,  // receiver 0x… as string
    payload,
    refundAddress        // usually authorizedCaller / orchestrator
);
gateway.callContract(destinationChain, destinationAddress, payload);
```

## Critical: Authorize And Allowlist

| Side | Guard |
| ---- | ----- |
| Source sender | Only `authorizedCaller` (orchestrator) may `send` |
| Destination receiver | Validate `srcChain` + `srcAddress` (case-insensitive) before handling |
| Destination handler | Only the receiver may call business logic (`authorizedCaller`) |

Compare Axelar chain/address strings with a shared lowercase hash — Axelar may vary casing.

```solidity
require(
    keccak256(bytes(_toLower(srcChain))) == keccak256(bytes(_toLower(expectedSourceChain))),
    "invalid source chain"
);
require(
    keccak256(bytes(_toLower(srcAddress))) == keccak256(bytes(_toLower(expectedSourceAddress))),
    "invalid source address"
);
```

## Architecture: Split Transport From Business Logic

```text
Source chain                    Destination chain
─────────────────────────────   ─────────────────────────────
Orchestrator ──send──►          MessageReceiver (_execute)
     │ BridgeSender iface              │ Handler iface
BridgeSender                    Handler (swap / settle / …)
```

1. Deploy **handler** first (no bridge knowledge).
2. Deploy **receiver** with gateway + expected source + handler.
3. Deploy **sender** with gateway + gas service + destination chain/address.
4. Deploy **orchestrator** with sender address; authorize orchestrator on sender.
5. **Wire** after both deploys: set destination on sender; set expected source on receiver.
6. Fund orchestrator (native for Axelar gas) and handler (tokens/capital for destination work).

## Payload Contract

Agree a single ABI encode/decode on both sides. Keep payloads versionable if you evolve fields — mismatched decode bricks the route.

```solidity
bytes memory payload = abi.encode(/* agreed fields… */);
// receiver:
(/* fields… */) = abi.decode(payload, (/* matching types… */));
```

## Hedera Orchestration Hook (HSS)

When the source app schedules itself via HSS (`0x16b`), each cycle should:

1. Enforce interval / plan active
2. Call the bridge sender with native value for Axelar gas
3. Reschedule next expiry with `hasScheduleCapacity` + `scheduleCall` (SUCCESS = `22`)

If scheduling fails, mark a recovery flag and expose a manual reschedule for the plan owner.

## Checklist

- [ ] Gas paid with native value before `callContract`
- [ ] Destination chain name matches Axelar’s ID (string, not numeric chain ID)
- [ ] Peer addresses set after both contracts deploy (wire step)
- [ ] Source allowlist + authorized callers on both ends
- [ ] Payload encode/decode identical
- [ ] Orchestrator funded for relay gas; destination handler funded for work
- [ ] Demo vs production: clarify who owns destination proceeds

## References

- [references/examples.md](references/examples.md) — sender / receiver / allowlist sketches
- [references/hedera-axelar.md](references/hedera-axelar.md) — chain names vs IDs, SDK imports
- [Axelar GMP overview](https://docs.axelar.dev/dev/general-message-passing/overview)
- [axelar-gmp-sdk-solidity](https://github.com/axelarnetwork/axelar-gmp-sdk-solidity)

© hedera-dev · Apache-2.0 · hedera-dev/hedera-skills

Похожие скиллы

Все скиллы по теме «Бэкенд и API» →
mcp-builder официальный anthropics Скилл проводит через создание MCP-сервера на TypeScript или Python: от изучения протокола до тестов и оценки качества. 130 949установок claude-api официальный anthropics Справочник по Anthropic SDK и API Claude для генерации кода без устаревших параметров и выдуманных методов. 74 198установок lark-im larksuite Скилл подключает Lark IM к агенту: он отправляет сообщения, ищет историю, управляет чатами и файлами. Подойдёт для задач вокруг командных коммуникаций. CX Codex +1 472 900установок lark-event larksuite Слушает события Lark/Feishu и отдаёт их потоком NDJSON. Подходит для ботов, обработчиков сообщений и долгих подписчиков. CX Codex +1 466 800установок caveman-discover JuliusBrussee Находит точки вызова LLM в репозитории и размечает их воркфлоу для Caveman Cloud, чтобы расходы на токены не сливались в одну общую кучу. CX Codex +1 104 400установок migration JuliusBrussee Скилл задаёт правила безопасных миграций схем, данных и API с обязательным откатом. Пригодится при изменениях, где нельзя терять данные или ломать совместимость. CX Codex +1 103 900установок

Из того же набора19

harness-spec-anatomy Описывает, из чего состоит рецепт hedera-harness: файлы, значения по умолчанию v3, стадии прогона и правило слепой проверки. Нужен тем, кто пишет или проверяет такие рецепты. CX Codex +1 464установок review-harness-spec Проверяет рецепт .harness/spec.yaml перед запуском тестов и генератора. Находит ошибки связей и пробелы в чеклисте оценок. CX Codex +1 459установок x402-payments Скилл для агентов, который помогает закрыть HTTP-ресурсы оплатой в HBAR по схеме x402: 402-ответ, подпись перевода, проверка и расчёт через свой фасилитатор. CX Codex +1 462установок layerzero-messaging Скилл для сборки мостов LayerZero V2 между Hedera и EVM-сетями: OFT/OApp, настройка Endpoint V2, ULN, DVN и отправка через quoteSend. CX Codex +1 460установок chainlink-data-feeds Помогает безопасно читать ценовые фиды Chainlink AggregatorV3 на Hedera (chain ID 295 и 296), проверять полноту и свежесть раундов и нормализовать decimals. CX Codex +1 444установок pyth-price-feeds Скилл для интеграции Pyth pull-фидов в контракты на Hedera: обновление цены через Hermes, чтение с ограничением по возрасту, проверка confidence. CX Codex +1 444установок supra-push-oracle Скилл для чтения push-оракула Supra на Hedera: getSvalue(pairId), миллисекундные метки времени и пары USDT. Пригодится, если контракт берёт цены из Supra. CX Codex +1 448установок ccip Помогает настроить перенос токенов между Hedera и EVM-сетями через Chainlink CCIP. Пригодится при выпуске burn-and-mint токенов и интеграции HTS. CX Codex +1 443установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой