Усі статті
7 хв читання

Кросчейн-свопи з TON в Ethereum: як це працює

Кросчейн-своп TON Ethereum через атомарний HTLC-ескроу: quote, build, track, disclose і refund. Некастодіально — ключі та кошти залишаються у вас.

кросчейн свопTONEthereumHTLC-ескроунекастодіальністьMCP

Уявіть: ваш ШІ-агент тримає USDT на TON, а користувач просить «переведи в ETH на Ethereum». Звичний шлях — відправити гроші на централізовану біржу, дочекатися зарахування, вручну обміняти, вивести в потрібну мережу. Агент так не вміє: у нього немає акаунта на біржі, немає KYC, а головне — на кожному кроці хтось тримає ваші кошти. Варто одній ланці зависнути — і актив застрягає між мережами без гарантії повернення.

Класична відповідь індустрії — міст із посередником, якому ви віддаєте гроші «потримати». Саме такі мости і зламують на сотні мільйонів. Для автономного агента це неприйнятно: йому потрібен обмін, де або угода проходить повністю, або кожен отримує свої кошти назад — без довіреного посередника. Саме це й розв'язує кросчейн-своп із TON в Ethereum через атомарний HTLC-ескроу. Нижче розберемо, як він влаштований зсередини, на реальних інструментах MCP-сервера TONNode — без кастодіальності й без магії.

Що таке кросчейн-своп TON → Ethereum і чому він атомарний

Кросчейн-своп — це обмін активу в одній мережі на актив в іншій без спільного блокчейну, який міг би записати обидві операції однією транзакцією. TON фізично не може «побачити» транзакцію в Ethereum, а Ethereum — у TON. Спільного судді немає. Тому наївна схема «я відправив — ти відправив» наштовхується на проблему довіри: хто ходить першим, той і ризикує.

Ключове слово тут — атомарність. Атомарна операція або виконується повністю, або не виконується взагалі; проміжного «наполовину» не буває. Стосовно свопу це залізна гарантія: або виконуються обидві половини угоди й кожен отримує те, на що чекав, або угода відкочується і кожен забирає свої початкові кошти назад. Стану «я віддав, а мені не прийшло» просто не існує як результату.

Досягається це не довірою до посередника, а криптографією і таймаутами — механізмом HTLC.

Атомарний HTLC-ескроу простими словами: хеш, секрет і таймаут

HTLC розшифровується як Hash Time-Locked Contract — «контракт із блокуванням за хешем і часом». Звучить складно, але ідея цілком побутова. Уявіть банківську комірку з двома замками:

  • Замок за хешем. Комірка відкривається лише тому, хто знає секрет — довгий випадковий рядок S. У самій комірці лежить не секрет, а його «відбиток» — хеш H = hash(S). За відбитком неможливо відновити секрет, але, побачивши секрет, будь-хто миттєво перевірить, що відбиток саме від нього. Гроші блокуються в ескроу «під цей хеш».
  • Замок за часом (таймаут). Якщо за відведений час секрет так і не розкрили, комірка автоматично розблоковується назад на користь того, хто її наповнював.

Як це дає атомарність у зв'язці двох мереж:

  1. На боці TON блокуються ваші GRAM/USDT в ескроу під хеш H.
  2. Контрагент (маркетмейкер), побачивши блокування, віддзеркалює ескроу на Ethereum під той самий H — резервує ваш ETH.
  3. Щоб забрати ETH на Ethereum, ви розкриваєте секрет S. Але розкриття S робить його публічним у блокчейні.
  4. Контрагент бачить S і цим самим секретом забирає ваші кошти з TON-ескроу.

Секрет один на обидві половини угоди. Щойно він розкритий для отримання ETH, він автоматично розблоковує і TON-сторону. Розкрити одну половину, не віддавши другу, неможливо. А якщо щось пішло не так і S не розкрито — після спливу таймауту обидві сторони роблять повернення. Звідси й «атомарність»: третього результату немає. Жодної довіри до сервера-посередника ця схема не вимагає за самою побудовою.

Повний потік із п'яти інструментів: quote → build → track → disclose/refund

У TONNode весь HTLC-обмін розкладено на п'ять інструментів. Порядок викликів крок у крок повторює логіку HTLC.

1. get_crosschain_quote — котирування

Насамперед дізнаємося умови: скільки ETH (або USDT в Ethereum) ви отримаєте за свої кошти в TON з урахуванням ліквідності та комісій. Повертає курс, очікувану суму на виході й параметри маршруту. Це читання — воно нічого не блокує і не підписує.

2. build_crosschain_swap_tx — непідписана HTLC-ескроу транзакція + секрет

Тут народжується угода. Інструмент повертає непідписану транзакцію, яка заблокує ваші кошти в HTLC-ескроу під хеш секрету, і — окремо — сам секрет S. Критично: секрет отримуєте ви — на сервері він не залишається. Транзакцію підписує ваш гаманець через TonConnect, сервер до підпису не торкається. Саме цей секрет ви пізніше розкриєте, щоб завершити угоду, — а якщо угода зависне, заблоковане повернеться вам за таймаутом, без розкриття секрету.

3. track_crosschain_swap — фази угоди в обох мережах

Після того як ви підписали й відправили ескроу-транзакцію, треба розуміти, де зараз угода: чи заблоковані ваші гроші на TON, чи з'явився зустрічний ескроу на боці Ethereum, чи все готове до розрахунку. track_crosschain_swap показує фази в обох мережах одразу — це ваш спільний погляд поверх двох блокчейнів. Викликаєте його, доки угода не дійде до стану «готово до розкриття секрету».

4a. disclose_crosschain_secret — розкрити секрет для розрахунку

Коли трекінг підтвердив, що зустрічна сторона готова й заблокована ончейн, ви розкриваєте секрет. Це фінальний крок: розкриття запускає розрахунок — ви забираєте ETH, контрагент цим самим секретом забирає ваші GRAM/USDT. Важливо викликати його лише після перевірки готовності ончейн через track_crosschain_swap — розкрити секрет завчасно означало б віддати ключ до того, як друга половина комірки наповнена.

4b. build_crosschain_refund — повернути кошти, якщо угода зависла

Сценарій підстраховки. Якщо зустрічна сторона так і не виконала свою частину — контрагент не віддзеркалив ескроу, сплив таймаут — build_crosschain_refund збирає непідписану транзакцію повернення ваших коштів з ескроу. Той самий другий замок — за часом. Секрет не розкривається, заблоковане повертається вам. Це аварійний запобіжник атомарності: зависла угода не з'їдає ваші гроші.

Схематично весь шлях:

get_crosschain_quote      → скільки отримаю
build_crosschain_swap_tx  → непідписана HTLC-tx + секрет (секрет у вас)
        ↓ (підписав у гаманці, відправив)
track_crosschain_swap     → фази на TON і на Ethereum
   ├─ готово ончейн    →  disclose_crosschain_secret   → розрахунок
   └─ зависло, таймаут →  build_crosschain_refund      → повернення

Підключивши сервер, ви просто просите агента людськими словами — він сам вибудує ланцюжок інструментів:

Обміняй 50 USDT з мого TON-гаманця на ETH у мережі Ethereum.
Спочатку покажи котирування (get_crosschain_quote).
Якщо курс влаштовує — збери HTLC-ескроу (build_crosschain_swap_tx),
дай мені підписати. Потім відстежуй угоду (track_crosschain_swap)
і, коли обидві сторони готові ончейн, розкрий секрет для розрахунку.
Якщо за таймаут нічого не зрушиться — збери повернення.

Чому це некастодіально: сервер не підписує і не тримає ключі

Повернімося до болю з початку. Звичайний міст небезпечний тим, що ви віддаєте кошти під контроль посередника. TONNode влаштований інакше, і це його принципова позиція: сервер НІКОЛИ не підписує і не зберігає кошти та приватні ключі.

Що це означає для HTLC-ескроу на практиці:

  • build_crosschain_swap_tx віддає непідписану транзакцію — доки ви не підпишете її своїм гаманцем через TonConnect, нічого не блокується.
  • Секрет S тримаєте ви, а не сервер. Без вашого секрету ніхто не завершить розрахунок від вашого імені.
  • Повернення за таймаутом (build_crosschain_refund) теж збирається як непідписана транзакція під ваш підпис.
  • Навіть згенерований гаманець (інструмент generate_wallet) віддається вам і на сервері не залишається.

Навіть якщо сервер недоступний або скомпрометований, він фізично не може ані заволодіти вашими коштами, ані завершити угоду без вашого підпису і вашого секрету. Інакше кажучи, атомарний HTLC захищає вас від контрагента, а некастодіальна архітектура — від самого сервісу. Докладніше про цю модель — у розборі кастодіальний проти некастодіального MCP і в статті про некастодіальний своп для агентів на TON.

Для порівняння: офіційний @ton/mcp від TON Foundation — це кастодіальний агент-гаманець, який тримає operator-ключ і підписує сам, і працює лише всередині TON без кросчейну. Різниця чесна: там автономні витрати ціною довіри до ключа, тут — некастодіальність плюс вихід за межі TON.

Які мережі підтримуються: Ethereum, Arbitrum, Base, BNB, Polygon, Avalanche

TON тут завжди виступає джерелом угоди, а мережа призначення — одна з шести EVM-мереж:

  • Ethereum
  • Arbitrum
  • Base
  • BNB Chain
  • Polygon
  • Avalanche

Механіка для всіх однакова — атомарний HTLC-ескроу. TRON поки що не підтримується. Якщо цілитеся в L2 заради дешевих комісій, погляньте на окремий розбір кросчейн-своп TON → Arbitrum — потік той самий, відрізняється лише мережа призначення. А навіщо це взагалі агенту і де тут цінність для TON — у статті про перший кросчейн-своп і цінність для мережі.

Як підключити MCP і запустити перший кросчейн-своп

TONNode — це hosted MCP-сервер для TON. MCP (Model Context Protocol) — стандарт, за яким ШІ-агенти (Claude, Cursor, ChatGPT/Codex і будь-який MCP-клієнт) викликають інструменти. Усього інструментів 16, і всі 16 доступні на будь-якому тарифі — платите лише за пропускну здатність.

Локально і безкоштовно

Публічний конфіг із повним набором читання встановлюється однією командою — npx -y @tonnode/mcp:

{
  "mcpServers": {
    "ton": {
      "command": "npx",
      "args": ["-y", "@tonnode/mcp"]
    }
  }
}

Додайте це в конфіг вашого MCP-клієнта (Claude Desktop, Cursor, Codex, будь-який MCP-сумісний), і інструменти get_crosschain_quote, build_crosschain_swap_tx, track_crosschain_swap, disclose_crosschain_secret, build_crosschain_refund стануть доступні агенту. Пакет @tonnode/mcp — open source (MIT), лежить на npm і GitHub (tonnode/mcp), працює за нативним ADNL-протоколом TON, без HTTP-прошарків.

Hosted — зі своїм ключем

Для гарантованої пропускної здатності підключаєте hosted-ендпоінт зі своїм ключем:

{
  "mcpServers": {
    "ton": {
      "type": "http",
      "url": "https://mcp.tonnode.io/mcp",
      "headers": { "Authorization": "Bearer tn_live_…" }
    }
  }
}

Тарифи відрізняються лише лімітом запитів: Hobby — безкоштовно назавжди, 60 запитів/хв; Pro — $29/міс, 300 запитів/хв; Scale — $199/міс, 1200 запитів/хв. Набір із 16 інструментів у всіх однаковий. Безкоштовний ключ Hobby видається одразу після входу, без картки. До речі, про валюту: GRAM — це перейменований Toncoin (перейменували в червні 2026), мережа й далі називається TON, і в котируваннях ви побачите саме GRAM.

Перший своп за хвилину

  1. Отримайте безкоштовний ключ Hobby — без картки, видається одразу після входу.
  2. Пропишіть конфіг (локальний або hosted).
  3. Дайте агенту промпт із розділу вище й підпишіть ескроу-транзакцію своїм гаманцем.

Коротко

Кросчейн між різними мережами не мусить будуватися на довірі. Атомарний HTLC-ескроу дає гарантію «все або нічого», а некастодіальна архітектура TONNode пильнує, щоб ані кошти, ані ключі, ані секрет ніколи не виходили з-під вашого контролю. П'ять інструментів — get_crosschain_quote, build_crosschain_swap_tx, track_crosschain_swap, disclose_crosschain_secret, build_crosschain_refund — покривають весь життєвий цикл угоди, включно з аварійним поверненням.

Перевірити на живому свопі можна безкоштовно: отримайте ключ Hobby і зробіть перший кросчейн-своп — без картки, 60 запитів на хвилину вистачить із запасом. Огляд усіх 16 інструментів — на сторінці MCP.

Дайте вашому агенту доступ до TON

16 MCP-інструментів: читання, некастодіальні свопи, кросчейн і гаманці. Безкоштовний тариф — 60 зап/хв, картка не потрібна.