Кейс: свипинг USDT в TRON на арендованной Energy

Кейс: свипинг USDT в TRON на арендованной Energy

Это реальная интеграция TronZap. По просьбе партнёра настоящее название компании заменено в статье на «PAYLINE PSP». Рабочий процесс, расчёт ресурсов и детали интеграции описаны так, как они работают в продакшене.

PAYLINE PSP — лицензированный криптоплатёжный провайдер: у компании есть криптолицензия (типа VASP), она принимает платежи в монетах от имени онлайн-мерчантов и рассчитывается с ними в стейблкоинах.

Как и у большинства процессингов, её хлеб на TRON — это USDT TRC20, а архитектура стандартная: уникальный депозитный адрес на каждый инвойс.

Клиент оплачивает инвойс, средства падают на этот одноразовый адрес, и дальше наступает этап, который каждый PSP знает слишком хорошо: свип, консолидация USDT с инвойс-адреса в казначейство компании.

Именно на этом шаге, повторяемом тысячи раз в месяц, комиссии TRON либо истощают бюджет, либо нет. Вот как PAYLINE PSP добился второго.

Анатомия свипа USDT в TRON и почему он стоит денег

Свип — это просто перевод USDT: инвойс-адрес вызывает смарт-контракт USDT и отправляет баланс на казначейский кошелёк. В TRON этот вызов контракта потребляет два ресурса:

  • Energy (Энергия): ~65 000 единиц. Для PSP это всегда дешёвый случай. Получатель — собственное казначейство компании, на котором уже есть USDT, так что удвоенная стоимость в 131 000 за «первого получателя» в свипе физически невозможна.
  • Bandwidth (пропускная способность): ~345 единиц за байты транзакции.

До интеграции с TronZap на инвойс-адресах PAYLINE не было Energy, поэтому сеть сжигала TRX из небольшого запаса, который свипер закидывал на каждый адрес: около 7 TRX за свип при текущей цене Energy в 100 sun. А ещё до того, как эта комиссия спишется, кто-то должен положить TRX на тысячи одноразовых адресов, и эта рутина тоже стоит зарплатных часов. При объёме PAYLINE примерно в 60 000 оплаченных инвойсов в месяц арифметика выглядела так (TRX по $0,30 для наглядности):

За свип За месяц (~60 000 свипов) За год
Energy, оплаченная сжиганием TRX ~7 TRX ~420 000 TRX ≈$126 000 ≈$1 512 000
Та же Energy, арендованная у TronZap доля от цены сжигания в несколько раз меньше в несколько раз меньше

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

Свипам не нужна аренда Bandwidth. Вообще.

Здесь схема с инвойс-адресами возвращает вам долг. Каждый активированный аккаунт TRON получает 600 бесплатных единиц Bandwidth в день, а перевод USDT потребляет около 345. Инвойс-адрес свипается один раз: одна исходящая транзакция за всю его жизнь. Одна транзакция, 345 единиц, 600 бесплатных: дневного лимита хватает с запасом.

Поэтому, в отличие от горячего кошелька обменника, который отправляет десятки переводов в день с одного адреса и вынужден закладывать бюджет на Bandwidth, PSP, свипающий одноразовые инвойс-адреса, арендует только Energy. Ни покупок Bandwidth, ни пакетов: бесплатного лимита хватает на каждый свип без исключения. Список покупок PAYLINE на один свип состоит ровно из одной строки: 65 000 Energy, делегирование на час.

Здесь уместна одна оговорка, потому что она больно бьёт по командам, которые её пропускают: адрес TRON, который только получал токены TRC-20, может быть ещё не активирован в сети, а неактивированный аккаунт не может инициировать свип (и бесплатную Bandwidth тоже не получает). PAYLINE решает это тем же вызовом TronZap: эндпоинт transaction/new принимает флаг activate_address, так что активация и делегирование Energy приходят вместе, когда свежему инвойс-адресу нужно и то и другое.

Конвейер от начала до конца

PAYLINE встроил TronZap Energy API в свой существующий свипер.

Весь поток — это четыре вызова и одна отправка в сеть:

Схема свипинга USDT в TRON для PSP

Несколько заметок из продакшена по итогам интеграции:

  • Сначала оценка, потом покупка. estimate-energy учитывает динамическую модель Energy в TRON, поэтому в дни, когда контракт USDT несёт надбавку, покупка подгоняется под реальность, а не под захардкоженные 65 000.
  • Часовое делегирование идеально подходит для свипов. Свип отправляется в сеть через секунды после поступления Energy, так что платить за 24-часовое окно незачем.
  • PHP SDK вытянул всё целиком. Аутентификация (Bearer-токен + подписи SHA-256), повторные попытки и обработка ошибок пришли из tron-energy-market/tronzap-sdk-php. Свипер прибавил около сотни строк кода.
  • Батчинг по-прежнему важен. Стоимость Energy не зависит от суммы USDT, поэтому PAYLINE свипает весь баланс инвойса одним переводом и никогда по частям.

Комплаенс

Лицензированный PSP не просто перемещает деньги, он обязан их проверять. PAYLINE выполняет AML-проверки входящих платежей через тот же аккаунт TronZap: эндпоинт /v1/aml-checks/new проверяет адрес плательщика или хеш депозитной транзакции до постановки свипа в очередь, а рискованные платежи отправляются на ручную проверку вместо казначейства. Один ключ API теперь закрывает и слой ресурсов, и слой проверок, что сократило список вендоров, который ведёт команда комплаенса.

Что теперь видит казначейство

  • Строка сжигания TRX ушла в ноль по операциям свипа: каждый свип идёт на арендованной Energy и бесплатной Bandwidth.
  • Больше никакой логистики TRX. Инвойс-адресам больше не нужно закидывать и сверять запасы TRX. Активация, когда она нужна, идёт вместе с покупкой Energy.
  • Расходы стали линейными и прогнозируемыми. Один свип = одна известная плата за аренду, независимо от скачков цены TRX и «свежести» адреса.
  • Экономия в пятизначных суммах ежемесячно при 60 000 свипов против ~$126 000, которые съедало сжигание; точная цифра зависит от объёма, цены TRX и текущих арендных ставок на tronzap.com.

Повторите эту схему

Если вы используете отдельные депозитные адреса на каждый инвойс в TRON, ваша версия этого кейса короткая:

  • Зарегистрируйтесь на tronzap.com и сгенерируйте ключи API в личном кабинете.
  • На каждый вебхук о депозите: estimate-energytransaction/newactivate_address для свежих адресов) → transaction/check → отправка свипа в сеть.
  • Полностью пропустите Bandwidth: 600 бесплатных единиц в день покрывают ~345 для одноразового свипа.
  • Возьмите SDK для своего стека (PHP, Node.js или Python) и справочник Energy API: эндпоинты выше — это всё, что нужно.
  • Необязательно, но разумно для лицензированных операторов: добавьте в тот же конвейер AML-эндпоинты.

Часто задаваемые вопросы

Это правда всегда 65 000 Energy и никогда 131 000?

Для свипов да, с одним разовым исключением: самый первый входящий перевод на совершенно новый казначейский кошелёк, на котором никогда не было USDT, стоит удвоенную сумму. После этого единственного события каждый свип в это казначейство навсегда становится стандартным случаем ~65 000, потому что удвоенная стоимость касается только первых получателей USDT.

Что, если клиент оплатит один инвойс дважды?

Ничего не меняется. Оба депозита накапливаются как один баланс на инвойс-адресе, и свипер переводит весь баланс одной транзакцией. Стоимость Energy не зависит от суммы USDT, так что два платежа всё равно означают один свип на ~65 000 Energy и один расход ~345 единиц Bandwidth.

Когда свипу вообще может понадобиться аренда Bandwidth?

Только если одному и тому же адресу пришлось бы провести больше одной транзакции за день: бесплатный лимит составляет 600 единиц в день на аккаунт, а каждый перевод забирает ~345. Схема с одноразовыми инвойс-адресами до этого никогда не доходит, и именно поэтому список покупок PAYLINE остаётся одной строкой: Energy.

Итог

Свипинг инвойс-адресов USDT — самая повторяющаяся транзакция, которую PSP проводит в TRON, и самая простая в исправлении.

Цифры PAYLINE PSP говорят сами за себя: те же 60 000 ежемесячных свипов, которые сжигали TRX примерно на $126 000, теперь идут на арендованной Energy за долю этой суммы, Bandwidth покрывается собственным бесплатным лимитом сети, а активация адресов встроена в тот же вызов API.

В этой схеме нет ничего проприетарного. Это четыре вызова TRON Energy API в обработчике вебхука и строка сжигания, которая исчезает из бухгалтерии.

Авторы

Автор: Marc Wei — инженер блокчейн-платежей

Проверил: Aren Skovarr — архитектор TRON, исследователь и стратег CEX

Marc и Aren живут экосистемой TRON. Они аудируют смарт-контракты, проектируют стратегии стейкинга и управления ресурсами и применяют TRON Energy в реальных бизнес-кейсах: платежи, биржи, iGaming.

Как консультанты TronZap они помогают пользователям и бизнесу перемещать цифровые активы с умом.

Назад