SunSwap через MCP: AI-агенты торгуют на DEX
Недостающий мост
Децентрализованные биржи были доступны через веб-интерфейсы, мобильные кошельки и программные SDK в течение многих лет. Чего они не предоставляли - это доступ через естественный язык. AI-агент не может нажать кнопку свопа. Он не может навигировать по веб-интерфейсу. И хотя агент технически может вызвать смарт-контракт через прямое построение транзакций, это требует от агента понимания кодирования ABI, адресов контрактов маршрутизаторов, механики пулов ликвидности и модели ресурсов TRON.
MERX заполняет этот пробел. Через MCP-сервер AI-агент может запросить котировку свопа, понять ожидаемый выход и затраты, а затем выполнить торговлю - всё через структурированные вызовы инструментов, которые абстрагируют сложность уровня протокола, сохраняя полную прозрачность того, что происходит в блокчейне.
Эта статья охватывает полную интеграцию SunSwap: получение котировок, выполнение свопов, обработка одобрений, моделирование затрат энергии и понимание реальных цифр из mainnet-торговли.
Получение котировки свопа
Первый шаг в любой торговле - понимание того, что вы получите. Инструмент get_swap_quote запрашивает контракт маршрутизатора SunSwap V2 для расчета ожидаемого выхода для заданного входа:
Tool: get_swap_quote
Input: {
"from_token": "TRX",
"to_token": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
"amount": "100000",
"from_address": "TYourAddress..."
}
Response:
{
"input_token": "TRX",
"input_amount": "0.1",
"input_amount_sun": 100000,
"output_token": "USDT",
"output_amount": "0.032847",
"output_amount_raw": "32847",
"minimum_received": "0.032519",
"price_impact": "0.001%",
"route": ["WTRX", "USDT"],
"router": "TKzxdSv2FZKQrEkFPRQi4qeCokAFkrntVM",
"energy_required": 223354,
"energy_cost_estimate_trx": 11.76,
"liquidity": {
"pool_address": "TPool...",
"trx_reserve": "45,234,891.23",
"usdt_reserve": "14,832,445.67"
}
}
В этом ответе содержится несколько важных деталей:
Влияние на цену
Поле price_impact показывает, насколько ваша торговля влияет на цену в пуле. Для свопа 0.1 TRX выше влияние составляет 0.001% - незначительно. Для более крупных торговель это число растёт:
Своп 0.1 TRX: 0.001% влияния
Своп 1,000 TRX: 0.012% влияния
Своп 100,000 TRX: 1.2% влияния
Своп 1,000,000 TRX: 11.8% влияния
Влияние на цену - это не комиссия, это структурное следствие механики постоянного произведения AMM. Чем больше ваша торговля относительно ликвидности пула, тем хуже будет ваша цена выполнения.
Минимум полученного
Поле minimum_received учитывает защиту от проскальзывания. По умолчанию MERX рассчитывает допуск проскальзывания в 1%, что означает, что своп вернётся, если выход на 1% ниже котируемого количества. Это защищает от фронт-раннинга и быстрых ценовых движений между котировкой и выполнением.
Маршрут
Поле route показывает путь токена. Для TRX в USDT маршрут проходит через WTRX (Wrapped TRX), потому что пары SunSwap V2 находятся между токенами TRC20, а нативный TRX должен быть обёрнут сначала. Для свопов token-to-token без прямой пары маршрут может включать промежуточные токены:
Токен A -> WTRX -> Токен B (двухходовой маршрут)
Многоходовые маршруты потребляют больше энергии из-за дополнительных взаимодействий с контрактами.
Требуемая энергия
Это точная оценка энергии из моделирования triggerConstantContract. Не жёсткая константа, не диапазон - точные единицы энергии, которые этот конкретный своп будет потреблять с этими конкретными параметрами при текущем состоянии блокчейна.
Выполнение свопа
После того как агент просмотрел котировку и решил продолжить, инструмент execute_swap обрабатывает всю последовательность выполнения:
Tool: execute_swap
Input: {
"from_token": "TRX",
"to_token": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
"amount": "100000",
"slippage": 1.0,
"deadline_minutes": 5
}
Response:
{
"status": "completed",
"tx_hash": "9c7b3a2f...",
"input": {
"token": "TRX",
"amount": "0.1"
},
"output": {
"token": "USDT",
"amount": "0.032847"
},
"energy_used": 223354,
"energy_purchased": 225000,
"energy_cost_trx": 11.84,
"block": 58234892,
"gas_saved_trx": 41.16
}
Что происходит внутри execute_swap
Инструмент execute_swap организует полный конвейер транзакций с учётом ресурсов:
- Моделирование свопа -
triggerConstantContractс точными параметрами свопа для получения точного требования энергии (223,354 в этом случае)
- Проверка текущих ресурсов - Запрос адреса отправителя для получения доступной энергии и bandwidth
- Покупка дефицита энергии - Поиск лучшей цены поставщика, размещение заказа и ожидание подтверждения делегирования
- Построение транзакции свопа - Построение вызова маршрутизатора SunSwap V2 с правильным селектором функции, параметрами и значением вызова
- Локальное подписание - Приватный ключ подписывает транзацию на машине агента
- Трансляция - Подписанная транзакция отправляется в сеть TRON
- Проверка - Опрос для подтверждения транзакции и парсинг результата
Агент вызывает один инструмент. Семь шагов выполняются за кулисами. Агент получает один ответ с полным результатом.
Одобрения токенов
При свопе токенов TRC20 (в отличие от свопа нативного TRX) маршрутизатор SunSwap нуждается в разрешении потратить токены от вашего имени. Это стандартный механизм approve TRC20.
MERX обрабатывает это автоматически. Перед выполнением свопа TRC20-к-TRC20 или TRC20-к-TRX инструмент execute_swap проверяет, имеет ли контракт маршрутизатора достаточное разрешение для входного токена:
Проверка одобрения:
Токен: USDT (TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t)
Spender: SunSwap V2 Router (TKzxdSv2FZKQrEkFPRQi4qeCokAFkrntVM)
Текущее разрешение: 0
Требуется: 100,000,000 (100 USDT)
-> Одобрение необходимо
Если одобрение необходимо, MERX:
- Моделирует транзакцию одобрения для получения её затрат энергии
- Добавляет энергию одобрения к энергии свопа для совместной покупки
- Выполняет транзакцию одобрения сначала
- Ждёт подтверждения
- Затем выполняет своп
Требуемая энергия в сумме:
Одобрение: 46,312 энергии
Своп: 223,354 энергии
Итого: 269,666 энергии
Куплено: 270,000 энергии по 14.20 TRX
Агент не должен знать об одобрениях. Если оно необходимо, оно произойдёт. Если токен уже одобрен, этот шаг пропускается.
Сумма одобрения
По умолчанию MERX одобряет максимальное значение uint256 (неограниченное одобрение). Это означает, что будущие свопы одного и того же токена не потребуют другую транзакцию одобрения, экономя энергию и время. Если агент предпочитает точные одобрения (одобрение только необходимого количества), это можно указать:
Tool: approve_trc20
Input: {
"token_address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
"spender": "TKzxdSv2FZKQrEkFPRQi4qeCokAFkrntVM",
"amount": "100000000"
}
Точные одобрения более безопасны (ограничивают экспозицию, если контракт маршрутизатора скомпрометирован), но потребляют энергию при каждом свопе.
Реальный своп: 0.1 TRX в USDT
Здесь приведены полные детали реального mainnet-свопа, выполненного через MCP-сервер MERX:
Состояние до свопа
Адрес: TWallet...
Баланс TRX: 523.456789 TRX
Баланс USDT: 0.00 USDT
Доступная энергия: 0
Доступный bandwidth: 1,420 (бесплатно)
Котировка
get_swap_quote:
Вход: 0.1 TRX (100,000 SUN)
Выход: 0.032847 USDT
Влияние на цену: 0.001%
Требуемая энергия: 223,354
Маршрут: WTRX -> USDT
Выполнение
execute_swap:
Купленная энергия: 225,000 по 11.84 TRX (поставщик: sohu)
Подтверждение делегирования: 4.1 секунды
Одобрение: Не требуется (TRX -> USDT, нативный TRX не требует одобрения)
Трансляция TX свопа: 9c7b3a2f...
Подтверждение TX свопа: Блок 58,234,892
Состояние после свопа
Адрес: TWallet...
Баланс TRX: 511.516789 TRX (523.456789 - 0.1 свопа - 11.84 энергии)
Баланс USDT: 0.032847 USDT
Доступная энергия: 1,646 (225,000 куплено - 223,354 использовано)
Доступный bandwidth: 1,000 (бесплатно, частично потреблено TX)
Разбивка затрат
Покупка энергии: 11.84 TRX
Вход свопа: 0.10 TRX
Потрачено итого: 11.94 TRX
Без покупки энергии (сжигание TRX):
Сжигание энергии свопа: ~53.00 TRX
Вход свопа: 0.10 TRX
Итого: ~53.10 TRX
Сбережения: 41.16 TRX (77.5%)
Оценка влияния на цену
Для агентов, совершающих более крупные торговли, понимание влияния на цену критично. Инструмент get_swap_quote предоставляет эту оценку, но понимание того, как она рассчитывается, помогает агентам принимать лучшие решения.
SunSwap V2 использует формулу постоянного произведения: x * y = k, где x и y - резервы токенов в пуле. Когда вы меняете dx токена X на dy токена Y:
dy = y * dx / (x + dx)
Эффективная цена, которую вы получаете (dy/dx), всегда хуже спот-цены (y/x), потому что ваша торговля увеличивает предложение X и уменьшает предложение Y.
Для пула с 45 миллионами TRX и 14.8 миллионами USDT:
Спот-цена: 14,800,000 / 45,000,000 = 0.328889 USDT/TRX
Своп 100 TRX:
Выход: 14,800,000 * 100 / (45,000,000 + 100) = 0.032888 USDT/TRX
Влияние: 0.0003%
Своп 100,000 TRX:
Выход: 14,800,000 * 100,000 / (45,000,000 + 100,000) = 32.797 USDT
Эффективная цена: 0.32797 USDT/TRX
Влияние: 0.28%
Своп 1,000,000 TRX:
Выход: 14,800,000 * 1,000,000 / (45,000,000 + 1,000,000) = 321,739 USDT
Эффективная цена: 0.32174 USDT/TRX
Влияние: 2.17%
MERX включает расчёт этого влияния в каждую котировку, чтобы агент мог оценить, подходит ли размер торговли для доступной ликвидности.
Многоходовые свопы
Не все пары токенов имеют пулы прямой ликвидности. Для токенов, которые торгуются против WTRX, но не против друг друга, SunSwap V2 маршрутизирует через промежуточный токен:
Токен A -> WTRX -> Токен B
Это требует двух операций свопа в одной транзакции (обрабатывается контрактом маршрутизатора). Потребление энергии выше:
Прямой своп (напр., TRX -> USDT): ~223,000 энергии
Двухходовой своп (напр., USDC -> USDT через WTRX): ~340,000 энергии
Трёхходовой своп: ~460,000 энергии
Инструмент get_swap_quote автоматически находит оптимальный маршрут и отчитывается об общем требовании энергии для полного пути.
Стратегии свопа для агентов
Усреднение стоимости по времени
Агент, в задачу которого входит накопление USDT, может использовать постоянные заказы в сочетании с выполнением свопа:
Постоянный заказ:
Триггер: расписание "0 */4 * * *" (каждые 4 часа)
Действие: Выполнить своп 100 TRX -> USDT по рыночной цене
Ограничение: максимум 600 TRX/день
Шесть свопов в день, каждый по 100 TRX, сглаживая волатильность цены.
Торговля на основе порога
Постоянный заказ:
Триггер: Цена TRX/USDT выше 0.35
Действие: Своп 1000 TRX -> USDT
Ограничение: максимум 1 выполнение/день
Агент продаёт TRX, когда цена благоприятна, накапливая USDT для операционных расходов.
Ребалансировка
Агент, управляющий портфелем, может использовать интенты для ребалансировки:
execute_intent:
Шаг 1: Своп 500 TRX -> USDT (если доля TRX > 60%)
Шаг 2: Своп 200 USDT -> TRX (если доля TRX < 40%)
Стратегия ресурсов: batch_cheapest
Сравнение: Raw TronWeb vs MERX MCP
Raw TronWeb (без MERX)
// 1. Оценка энергии (вручную)
const estimation = await tronWeb.transactionBuilder.triggerConstantContract(
routerAddress, 'swapExactETHForTokens(uint256,address[],address,uint256)',
{ callValue: 100000 },
[{ type: 'uint256', value: 0 },
{ type: 'address[]', value: [wtrxAddr, usdtAddr] },
{ type: 'address', value: myAddr },
{ type: 'uint256', value: deadline }],
myAddr
);
// 2. Купить энергию где-нибудь (отдельная интеграция)
// 3. Ждать делегирования (ручной опрос)
// 4. Построить транзакцию свопа
// 5. Подписать
// 6. Транслировать
// 7. Проверить
// ~50 строк кода, несколько интеграций API
MERX MCP (один вызов инструмента)
Tool: execute_swap
Input: {
"from_token": "TRX",
"to_token": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
"amount": "100000",
"slippage": 1.0
}
// Один вызов. Всё обрабатывается внутри.
Агент не должен знать об адресах маршрутизаторов, обёртывании WTRX, кодировании ABI, энергетических рынках, механике делегирования или построении транзакций. Он выражает намерение ("своп TRX на USDT") и получает результат.
Риски и ограничения
Проскальзывание
Даже с защитой от проскальзывания быстрые ценовые движения могут вызвать откат свопов. Если своп откатывается, энергия, использованная для откатившейся транзакции, теряется (хотя токены - нет). Агент может повторить попытку с более высокой допуском проскальзывания или меньшей суммой.
MEV и фронт-раннинг
Модель производства блоков TRON отличается от модели Ethereum, и ландшафт MEV менее развит. Однако крупные свопы на SunSwap всё ещё могут быть перегнаны софистицированными субъектами, мониторящими mempool. Для крупных торговель рассмотрите возможность разделения на несколько меньших свопов в разные блоки.
Ликвидность
Ликвидность SunSwap V2 значительно варьируется между парами токенов. Основные пары (TRX/USDT, TRX/USDC) имеют глубокую ликвидность. Меньшие токены могут иметь тонкие пулы, где даже умеренные торговли вызывают значительное влияние на цену. Всегда проверяйте котировку перед выполнением.
Заключение
Торговля на DEX через AI-агента - это больше не теоретическая возможность. MERX делает это реальностью с двумя вызовами инструментов: один для котировки, один для выполнения. Моделирование энергии точно. Покупка ресурсов автоматична. Одобрения токенов обрабатываются прозрачно.
Для AI-агентов, работающих на TRON, SunSwap через MCP - это самый быстрый путь к торговле в цепи. Нет веб-интерфейса. Нет ручного построения транзакций. Нет накладных расходов на управление ресурсами.
Котировка. Выполнение. Готово.
Ссылки:
- Платформа MERX: https://merx.exchange
- MCP-сервер (GitHub): https://github.com/Hovsteder/merx-mcp
- MCP-сервер (npm): https://www.npmjs.com/package/merx-mcp
Попробуйте прямо сейчас с AI
Добавьте MERX в Claude Desktop или любого MCP-совместимого клиента -- ноль установки, API-ключ не требуется для инструментов только для чтения:
{
"mcpServers": {
"merx": {
"url": "https://merx.exchange/mcp/sse"
}
}
}
Спросите вашего AI-агента: "Какая самая дешёвая TRON-энергия прямо сейчас?" и получите живые цены от всех подключённых поставщиков.
Полная документация MCP: merx.exchange/docs/tools/mcp-server