Это реальная интеграция TronZap. По просьбе партнёра настоящее название компании заменено в статье на «AB Exchange». Рабочий процесс, расчёт ресурсов и детали интеграции описаны так, как они работают в продакшене.
Большинство криптобирж живут и умирают двумя числами: спредом, который они котируют, и расходами, которые они несут.
AB Exchange, обменный криптосервис среднего размера, весь день котирует сделки фиат–USDT и крипта–USDT. Каждая завершённая сделка заканчивается одинаково: выплата USDT TRC20 уходит с одного из их горячих кошельков в TRON.
Умножьте это на сотни выплат в день, и модель ресурсов TRON превращается из технической сноски в строку в P&L. Ниже: как было, как стало и что стоит перенять.
До: каждая выплата по полной цене
AB Exchange держит несколько горячих кошельков для выплат и проводит примерно 300 выплат USDT в обычный день, около 9 000 в месяц. До интеграции на этих кошельках вообще не было Energy (Энергии), поэтому сеть брала за каждую выплату дорогим способом, сжигая TRX по текущей ставке 100 sun за единицу Energy:
- Выплата клиенту, на кошельке которого уже были USDT, потребляла ~65 000 Energy: около 7 TRX сгорало.
- Выплата на кошелёк, где USDT никогда не было, потребляла ~131 000 Energy: около 14 TRX сгорало. И это проклятие обменника: большая доля клиентов приходит со свежими кошельками, поэтому случай с двойной стоимостью срабатывает постоянно.
- После первой выплаты дня 600 бесплатных единиц Bandwidth (пропускной способности) каждого кошелька тоже были израсходованы (перевод USDT забирает ~345), так что каждая следующая выплата сжигала ещё ~0,35 TRX за Bandwidth.
При примерно 40% выплат первым держателям USDT смешанное сжигание выходило около 9 TRX на выплату. Месячная арифметика при цене TRX $0,30 для наглядности:
| За выплату | За месяц (~9 000 выплат) | |
|---|---|---|
| Energy, оплаченная сжиганием TRX | ~9 TRX в среднем | ~81 000 TRX ≈ $24 300 |
| Перерасход Bandwidth | ~0,35 TRX | ~3 000 TRX ≈ $900 |
| Итого уничтожено | ~9,3 TRX | ~84 000 TRX ≈ $25 200 |
Хуже самой цифры было её поведение. Сжигание росло вместе с ценой TRX, подскакивало, когда клиенты со свежими кошельками шли кучно, и время от времени оборачивалось откровенным сбоем: кошелёк, у которого в 3 часа ночи кончились и Energy, и TRX, выдавал ошибку OUT_OF_ENERGY, зависшую выплату и злого клиента с утра. Ночная смена получила обязанность, на которую никто не подписывался: нянчить балансы TRX.
Решение из трёх частей
AB Exchange ничего не перестраивал. Конвейер выплат остался прежним, а TronZap встроился вокруг него:
1. Подписки на Energy на каждом кошельке для выплат
Каждый горячий кошелёк перешёл на подписку TRON Energy. Теперь TronZap круглосуточно следит за этими адресами и автоматически пополняет каждый обратно до 131 000 Energy, как только выплата его опустошает. Цель в 131 000 — именно то, почему это работает для обменника: она покрывает перевод любому получателю, со свежим кошельком или нет, так что оператору никогда не нужно знать или задумываться, новичок ли в USDT следующий клиент. Включение подписок заняло несколько кликов в личном кабинете. Выключение, когда придёт тихий сезон, займёт столько же: отсутствие привязки здесь было условием, а не приятным бонусом.
2. Пополнения по API при пиках объёма
В загруженные дни выплаты могут опустошать кошелёк быстрее, чем проходит один цикл пополнения. Для таких всплесков AB Exchange встроил TronZap Energy API в свой воркер выплат: перед отправкой крупного батча воркер вызывает POST /v1/estimate-energy для точной потребности (эндпоинт проверяет историю USDT у каждого получателя), затем POST /v1/transaction/new, чтобы добавить на кошелёк дополнительную Energy, с подтверждением через POST /v1/transaction/check. Node.js SDK взял аутентификацию на себя из коробки, так что вся эта ветка заняла день работы.
3. Пакеты Bandwidth для загруженных кошельков
Кошелёк для выплат, отправляющий десятки переводов в день, проедает свои 600 бесплатных дневных единиц Bandwidth ещё до завтрака. Вместо того чтобы позволять сети отщипывать ~0,35 TRX с каждой последующей выплаты, AB Exchange закрывает разрыв пакетами Energy + Bandwidth от TronZap: одна покупка, оба ресурса, объём под дневную нагрузку. Это та деталь, которую пользователи с малым объёмом никогда не замечают, а крупные отправители не могут пропустить.
Ещё одна вещь досталась бесплатно вместе с аккаунтом: AML-проверки через тот же API TronZap. Входящие адреса клиентов теперь проверяются в том же конвейере, который управляет ресурсами, приятный бонус для бизнеса, который отвечает на анкеты по комплаенсу.
Новый поток выплат
Что изменилось в цифрах
Арендованная Energy стоит долю от того, во что обходится сжигание. В этом весь бизнес-кейс делегирования, и при объёмах обменника эффект нарастает быстро. На фоне ~$25 000 ежемесячного сжигания из таблицы выше схема окупает себя многократно каждый месяц (актуальные арендные ставки всегда видны на tronzap.com). Но деньги — только половина дела:
- Ноль инцидентов OUT_OF_ENERGY с момента запуска подписок. Кошелёк, закреплённый на 131 000 Energy, не может провалить выплату из-за нехватки ресурсов.
- Предсказуемая юнит-экономика. Стоимость выплаты больше не зависит от того, свежий ли кошелёк у клиента: подписка поглощает лотерею 65k/131k, так что котируемому спреду не нужно её хеджировать.
- Время эксплуатации вернулось. Никто больше не пополняет балансы TRX вручную, а личный кабинет показывает каждое автоматическое делегирование в одной истории.
Забирайте этот чек-лист
- Переведите каждый горячий кошелёк для выплат на подписку TronZap: цель в 131 000 существует именно для бизнесов, которые платят на чужие кошельки.
- Если дневной объём может обогнать пополнение, добавьте ветку API:
estimate-energy→transaction/new→transaction/checkперед крупными батчами. SDK доступны для PHP, Node.js и Python. - Считайте Bandwidth. Больше одной выплаты с кошелька в день означает, что бесплатных 600 единиц не хватит: берите пакеты Energy + Bandwidth вместо того, чтобы впустую сжигать ~0,35 TRX на каждом переводе.
- Проверяйте входящие адреса AML-эндпоинтами на том же аккаунте: одна интеграция, две решённые проблемы.
- Всё равно держите небольшой запас TRX. Ресурсы покрывают комиссии, но буфер — дешёвая страховка на нестандартные случаи.
Часто задаваемые вопросы
Почему держать 131 000 Energy, а не просто 65 000?
Потому что обменник не выбирает получателей. Любая выплата может уйти на кошелёк, где никогда не было USDT, а такому переводу нужно ~131 000 Energy вместо ~65 000. Кошелёк, закреплённый на большей цифре, безусловно покрывает каждую выплату, и в этом весь смысл подписки: убрать гадание от случая к случаю.
AB Exchange по-прежнему держит TRX на кошельках для выплат?
Небольшой запас, да: как страховку, а не как топливо. Когда TRON Energy и Bandwidth поставляет TronZap, сеть в штатном режиме ничего с него не списывает. Запас существует для нестандартных случаев и редких простых переводов TRX.
Что происходит, когда цена TRX растёт?
До интеграции ралли молча переоценивало каждую выплату: расходы на сжигание номинированы в TRX, так что счёт в долларах рос вместе с графиком. Арендованная Energy удерживает стоимость единицы на уровне арендных ставок, поэтому котируемые спреды AB Exchange больше не несут скрытого хеджа против волатильности комиссий.
Итог
AB Exchange не менял свой бизнес. Те же кошельки, тот же воркер выплат, те же клиенты.
Изменилось то, куда уходят комиссии TRON: вместо сжигания TRX по полной цене сети на каждой выплате обменник теперь берёт Energy и Bandwidth у TronZap по арендным ставкам, автоматически и круглосуточно.
Для любого обменного сервиса, который всё ещё платит сжиганием, те же три блока (подписки на TRX Energy, пополнения по API, пакеты) находятся в трёх ссылках от вас, в документации TRON Energy API.
Авторы
Автор: Marc Wei — инженер блокчейн-платежей
Проверил: Aren Skovarr — архитектор TRON, исследователь и стратег CEX
Marc и Aren живут экосистемой TRON. Они аудируют смарт-контракты, проектируют стратегии стейкинга и управления ресурсами и применяют TRON Energy в реальных бизнес-кейсах: платежи, биржи, iGaming.
Как консультанты TronZap они помогают пользователям и бизнесу перемещать цифровые активы с умом.
Назад