Все статьи
8 мин чтения

Кроссчейн-свапы из TON в BNB Chain: как это работает

Кроссчейн своп TON BNB: как атомарный HTLC-эскроу двигает ценность из TON в BNB Chain некастодиально, через MCP-инструменты TONNode.

кроссчейн свопTONBNB ChainHTLCнекастодиальностьMCP

Агент, которому поручили «обменять GRAM на BNB и заплатить контрагенту в сети BNB Chain», упирается в стену на первом же шаге. У него нет способа безопасно перевести ценность между двумя блокчейнами, которые ничего не знают друг о друге. Классический путь — централизованный мост или биржа: закинь монеты, доверься, жди и надейся, что средства не застрянут между сетями. Для автономного ИИ-агента это неприемлемо: он не может «доверять» кастодиану, не имеет права отдавать чужие ключи третьей стороне и не имеет рук, чтобы вручную разрулить зависшую транзакцию.

Нужен способ переместить ценность из TON в BNB Chain так, чтобы либо всё прошло целиком, либо всё вернулось назад — без посредника, который держит деньги. Ровно это делает кроссчейн-своп через атомарный HTLC-эскроу. Ниже разберём, как он устроен, какими пятью MCP-инструментами TONNode агент проводит сделку, и почему сервер при этом ни разу не касается ваших средств.

Что такое кроссчейн-своп TON → BNB Chain и зачем он агенту

Кроссчейн-своп — это обмен актива в одной сети на актив в другой без общего реестра между ними. TON и BNB Chain — две независимые сети со своими виртуальными машинами; у них нет общего «банка», который бы просто переписал баланс. Значит, нужен протокол, который синхронизирует два независимых перевода так, чтобы они стали неразрывны.

В TONNode кроссчейн всегда идёт из TON как источника в целевую EVM-сеть — в нашем случае BNB Chain. Обратного направления и «BNB как источника» нет: TON — всегда отправная точка. Вы блокируете GRAM или жетон на стороне TON, а получаете актив на стороне BNB Chain.

GRAM — это переименованный в июне 2026 Toncoin. Сеть по-прежнему называется TON, изменилось только имя монеты.

Зачем это агенту? Потому что реальные задачи редко замыкаются внутри одной сети. Агент-казначей держит казну в GRAM, но поставщику надо заплатить в BNB Chain. Торговый бот видит арбитраж между DEX на TON и на BNB. Ассистент выполняет поручение «переведи эквивалент 50 GRAM контрагенту в BSC». Во всех случаях нужен способ пересечь границу сетей — детерминированно, без кастодиана и без ручного вмешательства.

Как работает атомарный HTLC-эскроу: секрет, хэш и таймлок

HTLC расшифровывается как Hashed Timelock Contract — контракт с хэш-замком и таймлоком. Звучит сложно, но аналогия простая.

Представьте две ячейки-сейфа: одна в TON, другая в BNB Chain. Обе запираются одним и тем же замком, который открывается единственным секретным ключом — случайным числом, «секретом» S. В блокчейн кладётся не сам секрет, а его хэш H = hash(S) — как отпечаток замка. Кто угодно может проверить, что ключ подходит к замку, но по отпечатку сам ключ не восстановить.

Ячейку на BNB Chain наполняете не вы: встречную ногу выставляет контрагент — резолвер (маркет-мейкер), который блокирует BNB под тем же хэшем H, рассчитывая забрать ваши GRAM на стороне TON тем же секретом. Именно поэтому сделка симметрична: обе стороны заперты одним замком.

Дальше работают два условия:

  • Хэш-замок. Забрать средства из ячейки можно, только предъявив секрет, совпадающий с опубликованным хэшем. Как только секрет раскрыт на одной стороне, он становится виден и на другой — и вторая нога сделки исполняется тем же ключом. Кто забирает средства, обязан предъявить S в открытом виде он-чейн.
  • Таймлок. У каждой ячейки есть таймер. Если сделка не завершилась до истечения таймлока, средства возвращаются исходному владельцу. Таймлоки выставлены так, что сторона, раскрывающая секрет первой, не может обмануть встречную сторону.

Итог — атомарность: либо исполняются обе ноги, либо возвращаются обе. Промежуточного состояния, где вы отдали GRAM, а BNB не пришли, физически не существует. Никакой третьей стороны, которая «гарантирует» сделку, здесь нет — гарантию даёт математика хэш-функции и логика таймлоков в контрактах. Это тот же механизм, что стоит за атомарными свопами и Lightning-платежами, только адаптированный под TON и EVM.

Пять инструментов сделки: котировка, сборка, трекинг, раскрытие, рефанд

Весь жизненный цикл кроссчейн-свопа в TONNode покрыт пятью MCP-инструментами. Агент вызывает их по очереди — как ступени одной сделки.

get_crosschain_quote — котировка

Возвращает котировку сделки TON → BNB Chain: сколько вы отдаёте на стороне TON и сколько получаете на стороне BNB Chain. С этого начинается любой своп — агент показывает цифры пользователю до того, как что-либо блокируется.

build_crosschain_swap_tx — сборка транзакции + секрет

Отдаёт неподписанную HTLC-эскроу транзакцию плюс секрет. Транзакцию подписывает кошелёк пользователя через TonConnect, а не сервер. Секрет S генерируется здесь же и остаётся у пользователя/агента — именно им позже разблокируется вторая нога. Сервер сгенерировал транзакцию и хэш, но подпись и владение секретом остаются у пользователя.

track_crosschain_swap — трекинг фаз

Показывает фазы сделки на обеих сетях — и на TON, и на BNB Chain: заблокирована ли нога на TON, появилась ли встречная нога на BNB Chain, раскрыт ли секрет, завершён ли расчёт. Это глаза агента: без трекинга он не знает, когда безопасно раскрывать секрет и не пора ли делать рефанд.

disclose_crosschain_secret — раскрытие секрета

Раскрывает секрет для расчёта — но только после проверки готовности он-чейн. Инструмент не отдаст S вслепую: сначала он убеждается, что встречная нога на BNB Chain действительно на месте и условия выполнены. Это защищает от ситуации, где вы раскрыли секрет, а получать с той стороны нечего.

build_crosschain_refund — возврат из эскроу

Собирает транзакцию возврата средств из эскроу, если сделка зависла, — по истечении таймлока. Тоже неподписанная транзакция для TonConnect. Страховочный трос, к которому мы вернёмся в конце.

Почему это некастодиально: сервер не подписывает и не хранит ключи

Здесь проходит главная линия TONNode. Инструменты свопа, кроссчейна и кошелька строго некастодиальны. Сервер НИКОГДА не подписывает и не хранит средства и приватные ключи — он возвращает только неподписанные TonConnect-сообщения, которые подписывает кошелёк пользователя.

Разберём на кроссчейне конкретно:

  • build_crosschain_swap_tx отдаёт транзакцию без подписи. Подпись ставит кошелёк пользователя — Tonkeeper, MyTonWallet, любой TonConnect-совместимый. Пока пользователь не подтвердит транзакцию, ничего не блокируется.
  • Секрет S уходит на клиент. Сервер не может тайком забрать средства из эскроу: для этого нужна подпись владельца, а её у сервера нет.
  • Даже рефанд — это неподписанная транзакция: возврат инициирует пользователь, не сервер.

Практический вывод: скомпрометированный сервер не приводит к краже средств — там нечего уводить: ни ключей, ни подписей, ни контроля над эскроу. Максимум, что может «сломаться», — отказ в обслуживании (агент не получит котировку), но не потеря денег.

Сравните это с кастодиальной моделью, где агент-кошелёк держит operator-ключ и подписывает сам. Обе модели имеют право на жизнь, но для кроссчейна через две независимые сети некастодиальность особенно важна — вы не хотите, чтобы посредник контролировал деньги, зависшие между блокчейнами. Подробный разбор двух подходов — в статье Кастодиальный или некастодиальный MCP, а как это выглядит для обычного свопа внутри TON — в Некастодиальный своп для агента.

Какие сети поддержаны (и почему TRON пока нет)

Кроссчейн в TONNode всегда идёт из TON в целевую EVM-сеть. Поддерживаемые цели:

  • Ethereum
  • Arbitrum
  • Base
  • BNB Chain (наш случай)
  • Polygon
  • Avalanche

TRON пока НЕ поддерживается. Причина техническая: атомарный HTLC-эскроу требует, чтобы целевая сеть одинаково трактовала хэш-таймлок-контракты в рамках выбранного протокола эскроу. Перечисленные шесть сетей EVM-совместимы и укладываются в эту модель; TRON, несмотря на внешнее сходство, живёт по своей модели и требует отдельной реализации эскроу. Пока её нет — TRON в списке нет, и мы не выдаём желаемое за факт.

Про самую популярную пару — TON → Ethereum — есть отдельный разбор: Кроссчейн-своп TON → Ethereum. Механика та же, меняется только целевая сеть.

Пошаговый прогон свопа TON → BNB через MCP

Сначала подключим TONNode к агенту. Локальный публичный конфиг @tonnode/mcp бесплатен и даёт полный набор инструментов чтения — но только чтение. Пакет — open source (MIT), работает по нативному ADNL-протоколу TON, без HTTP-прослоек:

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

Важное уточнение: пять кроссчейн-инструментов через локальный публичный npx недоступны — там только чтение. Кроссчейн-сделка идёт через hosted-эндпоинт со своим ключом, и для неё достаточно бесплатного ключа Hobby:

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

На hosted-ключе все 16 инструментов — включая пять кроссчейн-инструментов — доступны на любом тарифе, начиная с бесплатного Hobby. Платите вы только за пропускную способность (Hobby — бесплатно, 60 запросов/мин; Pro — $29/мес, 300 запросов/мин; Scale — $199/мес, 1200 запросов/мин). Кроссчейн не заперт за старшим планом — но локальный npx для него не годится, нужен hosted-ключ.

Теперь сам прогон. Промпт агенту может быть максимально человеческим:

«Обменяй 50 GRAM из моего TON-кошелька на BNB Chain на адрес 0x…. Сначала покажи котировку, потом собери транзакцию — подпишу сам.»

Что происходит под капотом:

  1. Котировка. Агент вызывает get_crosschain_quote (источник TON, цель BNB Chain, сумма 50 GRAM) и показывает, сколько придёт на стороне BNB Chain.
  2. Сборка. После вашего «ок» агент вызывает build_crosschain_swap_tx. Получает неподписанную HTLC-эскроу транзакцию и секрет S. Транзакцию вы подтверждаете в своём кошельке через TonConnect. Средства блокируются в эскроу на стороне TON под хэш H.
  3. Трекинг. Агент периодически вызывает track_crosschain_swap и следит за фазами на обеих сетях: заблокирована ли TON-нога, поднялась ли встречная нога на BNB Chain (её выставляет резолвер под тем же хэшем H).
  4. Раскрытие и расчёт. Как только track_crosschain_swap показывает готовность, агент вызывает disclose_crosschain_secret. Инструмент проверяет готовность он-чейн и раскрывает S — секрет становится виден в BNB Chain, обе ноги исполняются, BNB приходят на ваш адрес.
  5. Подтверждение. Финальный track_crosschain_swap показывает, что обе стороны рассчитаны. Сделка закрыта.

Вся суть в том, что вы в любой момент видите состояние сделки на двух сетях и подписываете только то, что видите. Если вам интересна общая философия первого перемещения ценности из TON через MCP — она разобрана в Первый кроссчейн-перевод ценности из TON.

Если сделка зависла: возврат средств из эскроу

Кроссчейн — это две независимые сети, и иногда встречная нога не поднимается: у контрагента проблемы, сеть перегружена, что-то пошло не так. В кастодиальной модели тут начинается переписка с поддержкой. В HTLC — просто ждёт таймлок.

Средства заблокированы не навсегда. Как только таймлок истёк, а сделка не завершилась, агент вызывает build_crosschain_refund и получает неподписанную транзакцию возврата из эскроу. Вы подписываете её своим кошельком через TonConnect — и заблокированные GRAM возвращаются вам. Никаких «средства зависли навсегда»: это гарантия, встроенная в сам контракт, а не обещание сервиса.

Промпт может быть таким:

«Мой кроссчейн-своп на BNB Chain не завершился. Проверь статус и, если таймлок истёк, верни мои средства.»

Агент вызовет track_crosschain_swap, убедится, что расчёт не прошёл и таймлок позади, затем соберёт возврат через build_crosschain_refund и отдаст вам транзакцию на подпись.

Ключевой момент безопасности: секрет через disclose_crosschain_secret раскрывается только после проверки готовности он-чейн. Агент не окажется в ловушке, где секрет уже раскрыт, а получать нечего. Либо расчёт проходит атомарно, либо по таймлоку срабатывает рефанд. Третьего не дано — это и есть смысл слова «атомарный».


Забрать бесплатный ключ и подключить кроссчейн

Пять кроссчейн-инструментов входят в стандартный набор из 16 — их не нужно докупать. Возьмите бесплатный ключ Hobby (60 запросов/мин, без карты, выдаётся сразу после входа) и подключите TONNode к своему агенту: tonnode.io/dashboard?plan=hobby.

Хотите сначала посмотреть весь набор из 16 инструментов и их параметры — страница инструментов: tonnode.io/mcp.

Кроссчейн из TON в BNB Chain перестаёт быть задачей «доверься мосту» и становится обычным вызовом инструмента — атомарным, некастодиальным и с гарантированным возвратом, если что-то пойдёт не так.

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

16 MCP-инструментов: чтение, некастодиальные свапы, кроссчейн и кошельки. Бесплатный тариф — 60 запр/мин, карта не нужна.