Кросчейн-свопи з TON в Ethereum: як це працює
Кросчейн-своп TON Ethereum через атомарний HTLC-ескроу: quote, build, track, disclose і refund. Некастодіально — ключі та кошти залишаються у вас.
Уявіть: ваш ШІ-агент тримає 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). За відбитком неможливо відновити секрет, але, побачивши секрет, будь-хто миттєво перевірить, що відбиток саме від нього. Гроші блокуються в ескроу «під цей хеш». - Замок за часом (таймаут). Якщо за відведений час секрет так і не розкрили, комірка автоматично розблоковується назад на користь того, хто її наповнював.
Як це дає атомарність у зв'язці двох мереж:
- На боці TON блокуються ваші GRAM/USDT в ескроу під хеш
H. - Контрагент (маркетмейкер), побачивши блокування, віддзеркалює ескроу на Ethereum під той самий
H— резервує ваш ETH. - Щоб забрати ETH на Ethereum, ви розкриваєте секрет
S. Але розкриттяSробить його публічним у блокчейні. - Контрагент бачить
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.
Перший своп за хвилину
- Отримайте безкоштовний ключ Hobby — без картки, видається одразу після входу.
- Пропишіть конфіг (локальний або hosted).
- Дайте агенту промпт із розділу вище й підпишіть ескроу-транзакцію своїм гаманцем.
Коротко
Кросчейн між різними мережами не мусить будуватися на довірі. Атомарний 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 зап/хв, картка не потрібна.