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

layerzero-messaging — скилл для Claude Code: мосты OFT между Hedera

Скилл для сборки мостов LayerZero V2 между Hedera и EVM-сетями: OFT/OApp, настройка Endpoint V2, ULN, DVN и отправка через quoteSend.

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

Что делает layerzero-messaging

Скилл описывает паттерн OFT: на стороне EVM разворачивается стандартный OFT, на Hedera — коннектор с поддержкой HTS. Затем обе стороны связываются через setPeer, а перевод идёт с комиссией LayerZero V2. Внутри — справочные материалы по адресам Endpoint, ULN и DVN, а также примеры кода для проводки и отправки.

Ключевой момент — проводка в обе стороны. Для каждого OApp нужно вызвать setPeer(remoteEid, remoteOAppAsBytes32), настроить setSendLibrary и setReceiveLibrary (ULN302), применить setConfig для ExecutorConfig и UlnConfig, задать setEnforcedOptions. Неполная конфигурация ломает путь целиком, поэтому перед отправкой стоит проверить peers(remoteEid) на обеих сетях.

На Hedera обычный ERC-20 OFT основным путём не будет. Нужен коннектор на базе HTS: конструктор создаёт fungible-токен через прекомпиляцию 0x167, при отправке токены сжигаются, при получении — минтится новая порция. Суммы должны укладываться в int64. Получателя на Hedera нужно заранее ассоциировать с HTS-токеном, иначе входящий перевод не пройдёт. Ещё нюанс: симуляция комиссии через forge может расходиться с масштабированием wei/tinybar в Hedera JSON-RPC — для направления Hedera → EVM часто советуют считать quote через cast и масштабировать native fee вручную.

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

  • Развернуть пару OFT-токенов между Hedera и EVM-сетью
  • Связать OApp через setPeer в обе стороны
  • Настроить ULN, DVN и executor для отправки сообщений
  • Реализовать HTS-коннектор с минтом и сжиганием через 0x167
  • Отправить перевод с расчётом комиссии через quoteSend

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

  • Помоги развернуть OFT на EVM и HTS-коннектор на Hedera, затем свяжи их через setPeer
  • Настрой send и receive библиотеки с ULN302 и ExecutorConfig для моего OApp
  • Посчитай quoteSend для перевода на remoteEid и отправь с native fee

Как установить layerzero-messaging

1Через Skills CLI (Vercel)

npx skills add hedera-dev/hedera-skills --skill layerzero-messaging -a claude-code

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

~/.claude/skills/layerzero-messaging/SKILL.md

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

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

Вопросы о layerzero-messaging

Как установить layerzero-messaging в Claude?

Выполните npx skills add hedera-dev/hedera-skills --skill layerzero-messaging -a claude-code. После этого файл скилла появится в ~/.claude/skills/layerzero-messaging/SKILL.md.

Что делает layerzero-messaging?

Помогает собирать мосты LayerZero V2 между Hedera и EVM: разворачивать OFT и HTS-коннекторы, настраивать Endpoint V2, ULN, DVN и executor, отправлять переводы с расчётом комиссии.

Почему на Hedera нельзя использовать обычный ERC-20 OFT?

Основной путь на Hedera — коннектор на базе HTS: конструктор создаёт токен через прекомпиляцию 0x167, при отправке токены сжигаются, при получении минтится новая порция. Суммы при этом должны укладываться в int64.

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

SKILL.md · Apache-2.0
---
name: layerzero-messaging
description: >
  LayerZero V2 messaging on Hedera. Use when building OFT / OApp bridges between Hedera and
  EVM chains, configuring Endpoint V2 peers and ULN/DVN/executor wiring, sending with
  quoteSend + send, implementing HTS-backed OFT connectors (mint/burn via 0x167), or
  relaying educational lzReceive flows on testnet.
---

# LayerZero Messaging (Hedera)

**OFT pattern:** deploy paired Omnichain Fungible Tokens — a standard `OFT` on the EVM side and an **HTS connector OFT** on Hedera — then `setPeer` both ways and send with LayerZero V2 fees.

```text
OFT (EVM)  ←setPeer→  HTSConnectorOFT (Hedera)
  │ send / quoteSend          │ _debit burn / _credit mint (HTS 0x167)
  └──────── Endpoint V2 + ULN + DVN + Executor ────────┘
```

This skill focuses on **LayerZero V2 OApp/OFT + Hedera HTS**. Educational templates may use **simple workers** and a manual/UI `lzReceive` relay — not the same as production LayerZero Labs verification.

## Quick Reference

| Concept | Rule |
| ------- | ---- |
| Endpoint | `ILayerZeroEndpointV2` per chain |
| Peer | `setPeer(remoteEid, bytes32(uint256(uint160(remoteOApp))))` on **both** sides |
| Send | `quoteSend(SendParam, payInLzToken)` → `send{value: nativeFee}(SendParam, fee, refund)` |
| Receiver | `to` in `SendParam` is `bytes32` (padded address) |
| Hedera OFT | HTS-backed connector — create HTS token, burn on send, mint on receive |
| HTS fee | Deploy connector with native value to pay `createFungibleToken` |
| Approval | User must `approve(connector, amount)` on the **HTS token** before Hedera → EVM `send` |
| IDs | Use LayerZero **EIDs** in peers/`dstEid` — not EVM chain IDs |

See [references/hedera-endpoints.md](references/hedera-endpoints.md) for where to source Endpoint/ULN/DVN addresses. See [references/examples.md](references/examples.md) for wire and send sketches.

## Critical: Wire Both Directions

Incomplete peer config bricks the pathway. For each local OApp:

1. `setPeer(remoteEid, remoteOAppAsBytes32)`
2. `setSendLibrary` / `setReceiveLibrary` (ULN302)
3. `setConfig` — ExecutorConfig (type `1`) on send lib; UlnConfig (type `2`) on send + receive libs
4. `setEnforcedOptions` — e.g. `lzReceive` gas for msgType `1` (token send)

Verify with `peers(remoteEid)` on both chains before sending.

## Critical: Hedera HTS Connector Semantics

On Hedera, do **not** use a plain ERC-20 OFT as the primary path. Use an HTS-backed connector:

- Constructor creates fungible HTS via precompile `0x167` (supply key = connector)
- `_debit`: transfer HTS in → **burn**
- `_credit`: **mint** → transfer HTS out
- Amounts must fit `int64` for HTS mint/burn/transfer
- Associate the receiver account with the HTS token before EVM → Hedera receives

```solidity
// Deploy with value so createFungibleToken fee is paid
new HTSConnectorOFT{ value: htsCreateValue }(name, symbol, lzEndpoint, owner);
```

## Send Flow

```solidity
SendParam memory sendParam = SendParam({
    dstEid: remoteEid,
    to: bytes32(uint256(uint160(receiver))),
    amountLD: amountLD,
    minAmountLD: (amountLD * 9) / 10,
    extraOptions: OptionsBuilder.newOptions().addExecutorLzReceiveOption(lzReceiveGas, 0),
    composeMsg: "",
    oftCmd: ""
});

MessagingFee memory fee = IOFT(localOFT).quoteSend(sendParam, false);
IOFT(localOFT).send{ value: fee.nativeFee }(sendParam, fee, payable(refundTo));
```

**Hedera → EVM note:** forge fee simulation can disagree with Hedera JSON-RPC wei/tinybar scaling — often `quote` via `cast` + scaled native fee for that direction.

## Deploy Checklist (generic)

1. Deploy EVM `OFT` (optional premint)
2. Deploy Hedera HTS connector OFT with HTS create value
3. Deploy workers (Labs DVN/executor **or** educational simple workers)
4. Wire both OApps (`setPeer` + libraries + config + enforced options)
5. Associate Hedera account with `htsTokenAddress()`
6. Sync frontend config if applicable; fund relay key if using UI auto-relay
7. Send small amount; track on LayerZero Scan (testnet/mainnet as appropriate)

## Educational Relay

Some templates use **simple DVN/executor mocks** and an explicit `lzReceive` relay step. Treat that as a learning aid — production apps rely on LayerZero’s verification network, not a custom relayer key in the app server.

## Checklist

- [ ] Peers set both ways with correct EIDs (not EVM chain IDs)
- [ ] Send/receive libraries + ULN/executor config applied
- [ ] Hedera side is HTS connector; create fee paid; supply key is connector
- [ ] Receiver associated with HTS token before inbound transfers
- [ ] `quoteSend` native fee attached to `send`
- [ ] Receiver address encoded as `bytes32`
- [ ] Educational disclaimer: not audited / not for mainnet funds

## References

- [references/examples.md](references/examples.md) — OFT, HTS connector, wire, send
- [references/hedera-endpoints.md](references/hedera-endpoints.md) — EIDs vs chain IDs, where to source addresses
- [LayerZero V2 docs](https://docs.layerzero.network/v2)
- [LayerZero deployments metadata](https://metadata.layerzero-api.com/v1/metadata/deployments)

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

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

Всё по теме «Бэкенд и API» →
use-arc circlefin Подсказывает агенту, как настроить сеть Arc, задеплоить контракт и не перепутать два вида баланса USDC. Пригодится, если проект строится вокруг USDC. CX Codex +1 1 000установок chainlink-data-feeds-skill smartcontractkit Помогает агенту писать контракты и офчейн-код для чтения ценовых фидов Chainlink через AggregatorV3Interface и latestRoundData. CX Codex +1 364установок smart-contract-vulnerabilities yaklang Скилл помогает искать уязвимости в Solidity/EVM-контрактах: повторный вход, ошибки доступа, delegatecall, флэш-займы и MEV. CX Codex +1 3 500установок solidity-gas-optimization pseudoyu Скилл с 80+ приёмами оптимизации газа в Solidity по книге RareSkills. Пригодится при написании, ревью и аудите контрактов. CX Codex +1 547установок aws-messaging-and-streaming aws Помогает агенту выбрать, чем двигать данные в AWS: очередью, шиной событий или журналом. Полезно до того, как вы зафиксируете SQS или Kinesis. CX Codex +1 8 100установок subgraph-builder goldsky-io Ведёт от схемы и маппингов до задеплоенного GraphQL-эндпоинта на Goldsky. Пригодится, когда dApp нужен гибкий GraphQL поверх данных из сети. CX Codex +1 3 500установок

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

Quality Gates Скилл настраивает автоматические проверки кода: линт и типы после каждой правки, локальный CI перед пушем, чек-лист перед деплоем. CX Codex +1 536установок Hedera Agent Kit v4 Migration Ведёт проект с [email protected] на v4: меняет пакеты, импорты и переписывает кастомные инструменты на BaseTool. CX Codex +1 484установок agent-kit-plugin Скилл помогает создавать плагины и инструменты для Hedera Agent Kit. Он пригодится при добавлении операций с токенами, аккаунтами и другими сервисами Hedera. CX Codex +1 463установок create-harness-spec Превращает идею фичи Hedera в готовый рецепт для hedera-harness: PRD, spec.yaml, валидаторы. Пригодится, когда нужно перейти от замысла к запускаемой спецификации. CX Codex +1 465установок harness-spec-anatomy Описывает, из чего состоит рецепт hedera-harness: файлы, значения по умолчанию v3, стадии прогона и правило слепой проверки. Нужен тем, кто пишет или проверяет такие рецепты. CX Codex +1 464установок x402-payments Скилл для агентов, который помогает закрыть HTTP-ресурсы оплатой в HBAR по схеме x402: 402-ответ, подпись перевода, проверка и расчёт через свой фасилитатор. CX Codex +1 462установок 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установок

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

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