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

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

Кроссчейн своп TON Polygon через MCP: как атомарный HTLC-эскроу двигает ценность из TON в Polygon некастодиально, без хранения ключей на сервере.

кроссчейнTONPolygonHTLCнекастодиальностьMCP

Кошелёк с USDT лежит в TON, а платить нужно в Polygon — там дешёвый газ, там развёрнут ваш DeFi-контракт, там принимает получатель. Обычный маршрут: вывести на биржу, дождаться зачисления, продать, купить, вывести обратно в Polygon. Четыре шага, четыре комиссии, KYC и полное доверие к посреднику, который на эти минуты держит ваши деньги. Для человека это просто раздражает. Для ИИ-агента, который должен сделать это автономно, путь вообще нерабочий: агент не проходит KYC и не должен держать приватный ключ от биржевого аккаунта.

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

Зачем свапать из TON в Polygon и что делает TONNode

Кроссчейн своп TON Polygon нужен, когда ценность живёт в одной сети, а потратить её надо в другой, и вы не хотите ни ждать биржу, ни доверять посреднику свои средства. Типичные поводы:

  • заплатить контрагенту, который принимает только в Polygon;
  • пополнить позицию в протоколе, развёрнутом в Polygon, имея баланс в TON;
  • дать ИИ-агенту возможность самому перевести ценность между сетями по вашему промпту — но без доступа к вашим ключам.

TONNode — это hosted MCP-сервер для TON (сайт tonnode.io). MCP (Model Context Protocol) — стандарт, по которому ИИ-агенты (Claude, Cursor, ChatGPT/Codex и любой MCP-клиент) вызывают внешние инструменты. Вместо того чтобы учить агента REST-эндпоинтам и подписывать за него транзакции, вы даёте ему набор из 16 TON-инструментов, и он сам решает, какие вызвать. Пять из этих 16 отвечают за кроссчейн — именно они двигают ценность из TON наружу, некастодиально, без хранения ключей на сервере.

Важное ограничение механики: в TONNode TON всегда источник. Маршрут — из TON наружу; Polygon здесь сеть назначения, а не отправная точка.

Деталь про терминологию: GRAM — это переименованный Toncoin (переименование прошло в июне 2026), при этом сама сеть по-прежнему называется TON. Дальше по тексту GRAM = нативная монета TON.

Как работает кроссчейн своп TON → Polygon: атомарный HTLC-эскроу

Проблема любого межсетевого обмена — две сети не видят друг друга. Нет общего судьи, который гарантирует, что если вы отдали средства в TON, то получите их в Polygon. Классическое решение — атомарный HTLC-эскроу (hashed timelock contract). Аналогия — ячейка с двумя замками и таймером.

Работает это на двух примитивах — хэш-замке и таймлоке:

  1. Секрет и его хэш. Генерируется случайный секрет S, от него берётся хэш H = hash(S). Эскроу-контракты на обеих сетях блокируют средства «под хэш» H.
  2. Хэш-замок. Разблокировать средства из эскроу может только тот, кто предъявит S, дающий этот H. Пока секрет не раскрыт, деньги заперты с обеих сторон.
  3. Таймлок. У каждого эскроу есть дедлайн. Если до него секрет так и не раскрыт, средства становятся доступны обратно отправителю — это страховка от зависания.

Соль в том, что раскрытие секрета на одной сети математически позволяет забрать средства на другой: как только S появляется он-чейн, встречная сторона использует его, чтобы завершить свою половину. Отсюда атомарность: сделка либо проходит целиком на обеих сетях, либо не проходит нигде и средства возвращаются. Промежуточного состояния «деньги ушли из TON, но не пришли в Polygon» по дизайну не существует.

TONNode оркестрирует этот протокол через пять инструментов, но — принципиально — секрет отдаётся вам, а не остаётся на сервере, и все транзакции TON вы подписываете своим кошельком.

Пять инструментов кроссчейна: от котировки до расчёта

Все пять доступны на любом тарифе. Вот весь конвейер и что делает каждый инструмент.

1. get_crosschain_quote — котировка

Сколько вы получите в Polygon за отправленную сумму из TON. Агент вызывает его первым, чтобы показать курс и маршрут до того, как что-либо подписано. Возвращает параметры сделки, по которым дальше строится транзакция.

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

Собирает неподписанную транзакцию, которая блокирует ваши средства в эскроу на стороне TON, и возвращает секрет. Транзакция — в формате TonConnect-сообщения; подписывает её ваш кошелёк, не сервер. Секрет вы храните у себя — он понадобится на этапе расчёта.

3. track_crosschain_swap — фазы сделки на обеих сетях

Показывает, на каком этапе сделка: заблокирован ли эскроу в TON, встал ли встречный эскроу в Polygon, готово ли всё к расчёту. Ваш «пульт наблюдения» за обеими сетями сразу.

4. disclose_crosschain_secret — раскрыть секрет для расчёта

Раскрывает секрет, чтобы завершить расчёт — но только после того, как он-чейн-проверка подтвердила готовность обеих сторон. Порядок здесь критичен: раскрывать секрет до того, как встречный эскроу реально встал в Polygon, нельзя. Инструмент проверяет состояние обеих сетей и только тогда отдаёт секрет к раскрытию.

5. build_crosschain_refund — вернуть средства из эскроу

Собирает неподписанную транзакцию возврата, если сделка зависла и таймлок позволяет забрать заблокированное обратно. Про этот сценарий — ниже.

Как это выглядит в разговоре с агентом:

Свапни 250 USDT из TON в USDC на Polygon.
Сначала покажи котировку, потом собери транзакцию,
дай мне подписать её кошельком, отслеживай статус
и раскрой секрет только когда обе стороны эскроу готовы.

Полный маршрут под капотом:

1. get_crosschain_quote       → курс и маршрут TON → Polygon
2. build_crosschain_swap_tx   → неподписанный HTLC-эскроу + секрет S
   (пользователь подписывает в кошельке через TonConnect)
3. track_crosschain_swap      → ждём готовности обеих сетей
4. disclose_crosschain_secret → раскрыть S после проверки он-чейн → расчёт
5. build_crosschain_refund    → только если что-то пошло не так

Логика та же, что в свапе из TON в Ethereum — меняется только сеть назначения.

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

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

Разберём на примере build_crosschain_swap_tx. Инструмент отдаёт заготовку транзакции и секрет — но не совершает перевод. Ничего не двинется, пока вы не подтвердите это в своём кошельке. Приватный ключ не покидает кошелёк и не проходит через сервер ни в каком виде. То же с секретом HTLC: он отдаётся вам, поэтому даже расчётом управляете вы, а не оператор сервера.

Для ИИ-агента это принципиально. Автономный агент, у которого есть доступ к инструментам, не должен иметь возможности потратить ваши деньги без вашей подписи. Некастодиальная модель даёт именно это: агент готовит сделку, вы — единственный, кто её авторизует. Подробнее про разницу подходов — в разборе кастодиальный против некастодиального MCP и в материале о том, как безопасно дать агенту свапать в TON.

Отдельно — про официальный @ton/mcp от TON Foundation. Это сильный и официальный инструмент, но по устройству он другой: это кастодиальный агент-кошелёк (схема split-key — operator-ключ у агента, owner-ключ у пользователя), он подписывает сам и не поддерживает кроссчейн (только TON). У него свои плюсы — автономная трата, работа с NFT и DNS, официальность Foundation. Разница честная: он кастодиальный и только TON; TONNode некастодиальный, с кроссчейном и hosted-опцией. Развёрнутое сравнение — на странице сопоставления с официальным.

Полный список поддерживаемых сетей (и почему TRON пока нет)

Кроссчейн-своп в TONNode идёт из TON в одну из сетей назначения:

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

Во всех случаях TON — источник, а перечисленная сеть — назначение. TRON пока не поддерживается. Атомарный HTLC-эскроу требует, чтобы на стороне назначения существовал совместимый механизм hashed-timelock-контракта, встроенный в маршрут сделки. Перечисленные шесть сетей — EVM-совместимое семейство, куда TON умеет строить встречный эскроу. TRON в этот маршрут пока не заведён — не потому, что «нельзя в принципе», а потому что интеграции конкретно этой сети в продукте сейчас нет. Не закладывайтесь на TRON, пока он не появится в списке официально.

Логика Polygon ничем не отличается от Ethereum-маршрута; если нужен общий обзор, есть разбор первого MCP, который двигает кроссчейн-ценность из TON.

Что делать, если сделка зависла: рефанд из эскроу

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

Каждый эскроу-контракт имеет таймлок. Если сделка не завершилась и время истекло, средства не «сгорают» и не остаются у сервера — они возвращаются вам. Секрет вы при этом не раскрывали (и правильно — disclose_crosschain_secret не отдаст его, пока он-чейн не подтверждена готовность обеих сторон).

Механически возврат делает build_crosschain_refund: собирает неподписанную транзакцию, которую вы подписываете своим кошельком, и заблокированные средства возвращаются на ваш адрес в TON. Сервер и здесь ничего не подписывает и не хранит.

Свап в Polygon завис и не рассчитался.
Верни мои средства из эскроу.

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

Как подключить и попробовать: конфиг MCP и бесплатный ключ

Начать можно бесплатно и локально. Пакет @tonnode/mcp — open source (MIT), лежит на npm и GitHub (tonnode/mcp), работает по нативному ADNL-протоколу TON без HTTP-прослоек.

Бесплатно локально. Полный набор чтения на публичном конфиге, без ключа:

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

MCP-клиент сам поднимет сервер через npx.

Hosted-эндпоинт — когда нужна гарантированная пропускная способность и свой ключ:

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

На всех тарифах доступны все 16 инструментов — платите только за пропускную способность, а не за доступ к функциям:

  • Hobby — бесплатно навсегда, 60 запросов/мин;
  • Pro — $29/мес, 300 запросов/мин;
  • Scale — $199/мес, 1200 запросов/мин.

Бесплатный ключ Hobby выдаётся сразу после входа, без карты. Оплатить платные тарифы можно GRAM или USDT в сети TON через TonConnect, либо BTC/ETH/SOL и другими монетами через счёт xRocket в Telegram.

Пара честных оговорок, чтобы не было завышенных ожиданий: архивная глубина истории пока в роадмапе (нода синхронизируется), инструментов для NFT и DNS в TONNode сейчас нет, как нет вебхуков, gasless-релеера и письменных гарантий аптайма. Кроссчейн-продукт — это ровно те пять инструментов, что описаны выше, и они честно двигают ценность из TON в Polygon некастодиально.


Попробуйте кроссчейн сами. Получите бесплатный ключ Hobby и соберите первый своп TON → Polygon своим агентом: tonnode.io/dashboard?plan=hobby. Хотите сперва изучить весь набор из 16 инструментов — загляните на страницу про инструменты.

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

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