Ошибка «FAILED — OUT_OF_ENERGY»: почему перевод USDT не прошёл и целы ли деньги
Перевод USDT TRC-20 завершился со статусом FAILED — OUT_OF_ENERGY. Разбираем механику: почему сети не хватило энергии, что случилось с токенами (они целы), как проверить транзакцию по TXID в Tronscan и как отправить повторно без ошибки.
Короткий ответ: ваши USDT целы. Статус «FAILED — OUT_OF_ENERGY» означает, что смарт-контракту не хватило энергии на выполнение перевода, сеть остановила исполнение и откатила все изменения — токены никуда не ушли и остались на вашем адресе. Потерять здесь можно только комиссию: TRX, сожжённые в пределах лимита fee_limit, сеть не возвращает. Ниже разберём, откуда берётся эта ошибка, как проверить свою транзакцию по TXID в Tronscan и что сделать, чтобы повторная отправка прошла с первого раза.

Что означает статус OUT_OF_ENERGY
OUT_OF_ENERGY — один из стандартных кодов результата транзакции в протоколе TRON. Он описан в исходном коде узла java-tron рядом с SUCCESS и REVERT — см. перечисление contractResult в файле Tron.proto в репозитории tronprotocol/java-tron. Появляется он в одной ситуации: виртуальная машина начала исполнять вызов контракта, ресурса «энергия» не хватило, и исполнение было прервано.
Ключевое свойство, которое отвечает на главный вопрос: транзакция в TRON атомарна. Она либо выполняется целиком, либо не выполняется вовсе — «наполовину прошедших» переводов не бывает. У транзакции со статусом FAILED записи балансов в контракте USDT не изменились: получатель ничего не получил, а отправитель не потерял ничего, кроме комиссии. Поэтому статус в первую очередь пугает, а не вредит.
Что именно теряется: по официальной документации TRON (Resource Model), при нештатном завершении исполнения списывается максимум энергии, разрешённый для транзакции, — его ограничивает параметр fee_limit. То есть цена ошибки — сожжённая комиссия в пределах выставленного лимита, но никогда не сумма перевода.
Почему возникает: механика энергии в TRON
USDT в сети TRON — это токен на смарт-контракте стандарта TRC-20. Перевод — не пересылка монет, а вызов функции transfer: сеть исполняет код контракта, проверяет и обновляет балансы отправителя и получателя. Объём этой работы измеряется энергией, и сеть списывает её в момент исполнения. Если энергии на адресе нет или её меньше, чем нужно, недостающую часть сеть покрывает сжиганием TRX — до тех пор, пока не упрётся в лимит.
Сколько энергии стоит перевод. Обычный перевод USDT на адрес, где этот токен уже есть, расходует 64 285 единиц энергии — это видно в любой успешной транзакции контракта USDT, например в этой (Tronscan, 17.07.2026). Если же получатель ещё не держал USDT, контракт создаёт для него новую запись хранения, и расход почти удваивается — 130 285 единиц: пример такой транзакции. Это самая частая причина «внезапного» OUT_OF_ENERGY: кошелёк заложил ресурс под обычный перевод, а адрес получателя оказался свежим.
Сколько стоит сжигание. Тариф сжигания — сетевой параметр getEnergyFee, сейчас он равен 100 sun за единицу энергии (подтверждается документацией Resource Model; живое значение можно снять с любого узла методом wallet/getchainparameters). Арифметика на 17 июля 2026 года: 64 285 × 100 sun ≈ 6,4 TRX за обычный перевод и 130 285 × 100 sun ≈ 13 TRX за перевод на адрес без USDT. Тариф меняется голосованием супер-представителей, поэтому пересчитывайте на день операции.
Где стоит предохранитель. Сколько TRX кошелёк готов сжечь за одну транзакцию, ограничивает параметр fee_limit — он задаётся при создании транзакции (описание параметра FeeLimit в документации TRON). Дальше арифметика простая: если доступная энергия плюс TRX в пределах fee_limit покрывают меньше, чем стоит исполнение, — виртуальная машина обрывает работу со статусом OUT_OF_ENERGY.
Типичные сценарии, в которых это происходит:
- Арендованная энергия закончилась раньше, чем вы отправили перевод, а TRX на сжигание на балансе не оказалось.
- Кошелёк рассчитал комиссию под обычный перевод (~64 285 энергии), а получатель оказался адресом без USDT — реальная стоимость почти вдвое выше.
- На адресе было немного энергии и немного TRX, но в сумме их не хватило до полной стоимости исполнения.
- fee_limit задан вручную слишком низким — обычно при отправке через API или самописную интеграцию.
Чек-лист: проверяем транзакцию по TXID в Tronscan
TXID (хеш транзакции) есть в истории кошелька или в выписке биржи. Откройте обозреватель Tronscan и вставьте TXID в строку поиска — дальше по шагам:
- Шаг 1. Статус транзакции. У неудачного перевода стоит отметка FAILED, а в деталях — результат OUT_OF_ENERGY. Если статус SUCCESS — перевод прошёл, и проблема не в энергии.
- Шаг 2. Блок ресурсов транзакции. Посмотрите, сколько энергии списано и сколько TRX сожжено — это и есть ваша фактическая потеря.
- Шаг 3. Ваш адрес. Откройте страницу своего адреса и убедитесь, что баланс USDT не изменился: FAILED-транзакция балансы не трогает.
- Шаг 4. Ресурсы вашего адреса. На странице адреса видно, сколько энергии и bandwidth доступно прямо сейчас — сравните с ценой перевода из предыдущего раздела.
- Шаг 5. Адрес получателя. Если на нём нет ни одной входящей транзакции USDT, закладывайте двойной расход энергии на первый перевод.
- Шаг 6. Если TXID вообще не находится — транзакция не попала в сеть. Это другой случай: кошелёк её не отправил, и разбираться нужно с кошельком, а не с энергией.
Как исправить прямо сейчас
Неудачная транзакция ничего не отправила, поэтому «дубля» быть не может: перевод спокойно повторяется заново, как только закрыт дефицит ресурса. Закрыть его можно тремя способами.
- Арендовать энергию под перевод: около 65 000 единиц под обычный перевод и около 131 000 — если у получателя ещё нет USDT. TRX при этом почти не тратятся: сжигание заменяется делегированным ресурсом.
- Пополнить баланс TRX с запасом относительно расчётной стоимости сжигания (по тарифу на 17.07.2026 — примерно 6,4 либо 13 TRX, см. расчёт выше) и отправить повторно, приняв, что сжигание — самый дорогой путь.
- Поднять fee_limit, если вы задаёте его вручную или через API: лимит должен покрывать полную стоимость исполнения, а не оценку «в идеальных условиях».
Энергию под конкретный перевод можно арендовать в боте @overtronbot или на сайте Overtron: указываете адрес, объём и срок — энергия делегируется на кошелёк on-chain, доставка обычно занимает меньше минуты, приватные ключи не нужны. После зачисления просто создайте перевод заново: кнопки «повторить» у неудачной транзакции нет.
Как больше не столкнуться с OUT_OF_ENERGY
Ошибка целиком предотвратима — достаточно четырёх привычек. Первая: перед отправкой смотрите на получателя. Если адрес свежий и USDT на нём не было, первый перевод стоит почти вдвое дороже по энергии (130 285 против 64 285 единиц — живой пример), и оценка кошелька этого может не учесть.
Вторая: держите небольшой резерв TRX даже при аренде энергии. Помимо энергии транзакция расходует bandwidth; у каждого активного адреса есть 600 бесплатных единиц bandwidth в сутки (Resource Model), но при серии переводов бесплатный лимит заканчивается, и сеть добирает остаток из TRX. Третья: под серию переводов арендуйте объём сразу, а не по одной порции на каждый перевод — так вы не окажетесь посреди серии с пустым ресурсом. Четвёртая: для регулярных операций настройте автопополнение — правило само поддержит уровень энергии на адресе.
Чтобы повторная попытка прошла с первого раза: арендуйте энергию под перевод — укажите адрес и объём, доставка подтверждается on-chain, приватные ключи не нужны.
Читайте также
Целы ли мои USDT после ошибки OUT_OF_ENERGY?
Да. Транзакция в TRON атомарна: раз исполнение прервалось, все изменения откатились, и токены остались на вашем адресе. Проверить это можно за минуту: откройте свой адрес в Tronscan и посмотрите баланс USDT — он не изменился.
Вернутся ли TRX, сожжённые в неудачной транзакции?
Нет. Сожжённые TRX — это плата сети за уже проделанную работу виртуальной машины, и при нештатном завершении списывается максимум, разрешённый параметром fee_limit. Эта часть не возвращается — именно поэтому выгоднее не доводить до сжигания, а обеспечивать энергию заранее.
Может ли перевод со статусом FAILED «дойти» позже?
Нет. FAILED — финальный статус: транзакция уже записана в блокчейн как неисполненная, и сеть не будет пытаться выполнить её повторно. Чтобы отправить деньги, создайте новую транзакцию.
Сколько энергии нужно, чтобы перевод USDT точно прошёл?
Около 64 285 единиц для перевода на адрес, где USDT уже есть, и около 130 285 единиц, если получатель ещё не держал этот токен. Это фактические значения из транзакций контракта USDT в Tronscan на июль 2026 года; перед отправкой сверяйте расход по свежим транзакциям контракта.
Почему кошелёк не предупредил, что энергии не хватит?
Кошелёк оценивает стоимость заранее, а исполняет транзакцию сеть — по фактическому состоянию на момент включения в блок. Оценка чаще всего расходится с реальностью, когда у получателя ещё нет USDT (расход почти удваивается) или когда арендованная энергия истекла между оценкой и отправкой.
Что такое fee_limit и нужно ли его увеличивать?
Это максимум TRX, который транзакция может сжечь за исполнение; параметр задаётся при создании транзакции. В мобильных кошельках он обычно выставляется автоматически. Увеличивать его вручную имеет смысл при работе через API: лимит должен покрывать полную стоимость исполнения с запасом, иначе исполнение оборвётся с OUT_OF_ENERGY.
Как узнать, сколько энергии у меня сейчас?
Откройте страницу своего адреса в Tronscan — в блоке ресурсов видны доступная энергия и bandwidth. Большинство кошельков (TronLink, Trust Wallet) показывают те же цифры в деталях аккаунта.
Безопасно ли повторять перевод — не уйдёт ли двойная сумма?
Безопасно. Неудачная транзакция не переводила токены, поэтому повторная отправка — это первый и единственный реальный перевод. Двойного списания не будет: старая транзакция навсегда останется в блокчейне со статусом FAILED и нулевым перемещением USDT.


