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

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

Кроссчейн-своп TON → Base через MCP: HTLC-эскроу, некастодиально, 5 инструментов. Как агент двигает ценность из TON в Base без моста-кастодиана.

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

Ваш ИИ-агент нашёл выгодную возможность: капитал пользователя лежит в TON, а нужный протокол или актив — на Base. Классический ответ — «прогони через мост». Но мост означает, что кто-то держит ваши средства в момент перехода: bridge-контракт, релеер, мультисиг из подписантов, которых вы не выбирали. За последние годы именно мосты-кастодианы увели больше миллиарда долларов пользовательских денег — не потому что криптография плохая, а потому что кто-то держал средства в промежутке.

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

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

Зачем свапать из TON в Base и почему это не обычный мост

Base — это L2 поверх Ethereum от Coinbase на OP Stack. Туда мигрирует ликвидность, туда идут DeFi-протоколы, и всё чаще именно там оказывается контракт, с которым должен работать ваш агент. А исходный капитал у вас в TON — в GRAM (это переименованный в июне 2026 Toncoin; сеть по-прежнему называется TON) или в USDT на TON.

Обычный мост решает эту задачу через кастодию. Вы отдаёте средства в bridge-контракт на исходной сети, где-то в стороне релеер это видит и выпускает эквивалент на Base. Между «отдал» и «получил» есть окно, в котором вашими деньгами распоряжаетесь не вы. Для человека, который раз в месяц перекидывает средства, это терпимо. Для агента, который делает это в цикле и без надзора, — неприемлемый риск.

Альтернатива — атомарный обмен, где не существует момента, в котором средства принадлежат посреднику. Либо сделка исполняется целиком на обеих сетях, либо целиком откатывается. Именно так устроен кроссчейн в TONNode.

Как работает атомарный HTLC-эскроу между TON и Base

HTLC — hashed timelock contract, эскроу с двумя условиями разблокировки: хэш секрета и таймлок. Проще всего представить два сейфа: один в TON, один в Base. Оба открываются одним и тем же ключом — секретом. Пока секрет не раскрыт, оба заперты.

  • Хэш-замок. Средства на обеих сетях блокируются под один и тот же хэш секрета h = hash(s). Открыть эскроу можно, только предъявив сам секрет s, чей хэш совпадает.
  • Таймлок. У каждого сейфа есть срок. Если сделка не исполнилась вовремя, средства возвращаются владельцу по истечении таймлока.

Схема на пальцах:

  1. Генерируется случайный секрет s и его хэш h = hash(s).
  2. На TON блокируются ваши средства в эскроу под условие: «выдать тому, кто предъявит s; вернуть отправителю, если до дедлайна s так и не предъявлен».
  3. На Base контрагент (резолвер, обеспечивающий ликвидность назначения) блокирует свои средства под тот же h — с более коротким таймлоком.
  4. Вы раскрываете s, чтобы забрать средства на Base. В этот момент s становится публичным он-чейн.
  5. Контрагент видит раскрытый s и забирает заблокированные средства на TON.

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

В схеме TONNode TON всегда выступает источником сделки, а Base (или другая поддерживаемая сеть) — назначением.

Пять инструментов кроссчейн-свапа в TONNode MCP

TONNode — это hosted MCP-сервер для TON с ровно 16 инструментами. MCP (Model Context Protocol) — стандарт, по которому ИИ-агенты (Claude, Cursor, ChatGPT/Codex и любой MCP-клиент) вызывают внешние инструменты. Кроссчейн-набор — это ровно 5 инструментов, и они доступны на всех тарифах:

  • get_crosschain_quote — котировка: сколько получите на Base за ваши средства из TON, с учётом маршрута и таймлоков.
  • build_crosschain_swap_tx — собирает неподписанную HTLC-эскроу транзакцию для TON и возвращает её вместе с секретом. Подписывает её кошелёк пользователя через TonConnect.
  • track_crosschain_swap — показывает фазы сделки на обеих сетях: заблокировано ли на TON, заблокировал ли контрагент на Base, раскрыт ли секрет, завершено ли.
  • disclose_crosschain_secret — раскрывает секрет для расчёта, но только после того, как он-чейн подтверждено, что встречная нога готова.
  • build_crosschain_refund — собирает неподписанную транзакцию возврата средств из эскроу, если сделка зависла и таймлок истёк.

Обратите внимание на порядок ответственности: инструмент, который раскрывает секрет, делает это не вслепую, а после проверки готовности на Base. Это защищает вас от того, чтобы раскрыть s в ситуации, когда контрагент ещё ничего не заблокировал.

Полный поток: котировка → сборка → отслеживание → раскрытие секрета

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

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

Дальше вся работа идёт через промпты к агенту — он сам раскладывает их на вызовы инструментов.

Шаг 1. Котировка.

Дай котировку кроссчейн-свапа: 200 USDT из TON в USDC на Base.
Используй get_crosschain_quote.

Агент вернёт, сколько вы получите на Base и какие таймлоки у эскроу, — цифры до любых действий. Если устраивает — переходим дальше.

Шаг 2. Сборка неподписанной транзакции.

Собери HTLC-эскроу транзакцию по этой котировке через build_crosschain_swap_tx.
Мой TON-адрес EQ…, адрес получения на Base 0x…

На выходе — неподписанное TonConnect-сообщение с HTLC-эскроу и секрет сделки. Секрет ваш, храните его; сервер его не хранит. Средства блокируются в эскроу на TON под хэш этого секрета. Подпись ставит ваш кошелёк через TonConnect — сервер к подписи не прикасается.

Шаг 3. Отслеживание.

Проверь статус сделки через track_crosschain_swap по хэшу h….
Заблокировал ли контрагент средства на Base?

Инструмент показывает фазы на обеих сетях. Агент ждёт, пока обе стороны не окажутся заперты под один хэш.

Шаг 4. Раскрытие секрета.

Средства на Base заблокированы. Раскрой секрет для расчёта
через disclose_crosschain_secret.

Только после того как track_crosschain_swap подтвердит готовность он-чейн, агент раскрывает секрет. Раскрытие исполняет оба эскроу атомарно: вы получаете средства на Base, контрагент по публичному секрету закрывает свою сторону на TON. Сделка закрыта.

Заметьте порядок: секрет раскрывается последним и только после проверки, что встречный эскроу реально стоит. До раскрытия ваши средства никуда уйти не могут, а после раскрытия сделка уже атомарна.

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

Некастодиальность: почему сервер никогда не держит ваши ключи

Это не маркетинговая формулировка, а свойство архитектуры. Сервер TONNode никогда не подписывает транзакции и никогда не хранит средства или приватные ключи. Всё, что он отдаёт наружу, — неподписанные TonConnect-сообщения и данные (котировки, статусы, секрет для вашей же сделки).

Разложим по шагам, где что находится:

  • Приватный ключ вашего TON-кошелька — только у вас, в кошельке.
  • Секрет s — сгенерирован при сборке и отдан вам; на сервере не остаётся.
  • Подпись HTLC-транзакции — ставит ваш кошелёк через TonConnect.
  • Средства на TON — в эскроу-контракте под криптографическим условием, а не на счёте посредника.

Даже если бы сервер захотел, он не смог бы ни подписать за вас, ни увести средства из эскроу: у него нет ни ключа, ни возможности предъявить условие разблокировки в свою пользу. Это принципиально отличается от кастодиального подхода, где оператор держит ключ и подписывает сам. Развёрнутое сравнение двух моделей — в разборе кастодиальные vs некастодиальные MCP, а разбор именно свапа без кастодии — в тексте про некастодиальный своп из агента.

Какие сети поддерживаются кроме Base (и почему TRON пока нет)

TON всегда источник, а сетью назначения может быть любая из:

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

TRON пока не поддерживается. Причина техническая, а не идеологическая: атомарный HTLC-эскроу требует совместимой семантики хэш-таймлоков и предсказуемого поведения контрактов на стороне назначения. Если ваш сценарий завязан на TRON — не стройте на этом логику агента, в текущем наборе кроссчейна его нет. Когда добавим, это будет отражено в роадмапе: tonnode.io/roadmap.

Как подключить и что если сделка зависнет: рефанд

Для продакшена с гарантированной пропускной способностью используется 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 запросов/мин.

А если контрагент не завершил сделку?

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

Сделка зависла, таймлок истёк. Собери транзакцию возврата
средств из эскроу через build_crosschain_refund.

build_crosschain_refund отдаёт неподписанную транзакцию возврата — вы подписываете её своим кошельком и забираете средства обратно на TON. Это и есть страховка, встроенная в HTLC: сделка либо исполняется атомарно, либо откатывается по таймлоку. Зависшая сделка не означает потерянные деньги — она означает рефанд. Именно эта гарантия и делает атомарный обмен безопасной заменой мосту-кастодиану.

С чего начать

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

Самый быстрый способ попробовать — взять бесплатный Hobby-ключ (выдаётся сразу после входа, без карты) и прогнать поток TON → Base из своего агента:

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

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