Контракт USDT TRC20: адрес, как устроен transfer и почему он стоит энергии

Где живут ваши USDT в сети TRON, как проверить адрес контракта USDT TRC20, что происходит внутри при переводе и почему именно вызов transfer съедает энергию.

Overtron Editorial

Коротко: контракт USDT TRC20 — это смарт-контракт Tether в сети TRON по адресу TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t. Ваши USDT лежат не «на кошельке», а в таблице балансов внутри этого контракта. Перевод USDT — это вызов функции transfer: сеть исполняет код контракта, меняет две записи в его хранилище и списывает за это энергию. Отсюда и комиссия: около 64 500–65 000 энергии на адрес, где уже есть USDT, и примерно вдвое больше на пустой.

Стеклянный механизм с шестерёнками и сеткой светящихся ячеек — смарт-контракт USDT TRC20, который переносит токен из одной ячейки в другую
Перевод USDT — это не пересылка монеты, а работа механизма контракта: он переписывает две ячейки в таблице балансов

Адрес контракта USDT TRC20 и как его проверить

Настоящий USDT в сети TRON один — его выпускает Tether, и у него один адрес контракта: TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t. Всё, что называется USDT, но живёт по другому адресу, — другой токен, даже если у него та же иконка и то же название.

Проверить контракт можно за минуту в обозревателе Tronscan:

  • Вставьте адрес TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t в поиск Tronscan и откройте страницу токена.
  • Название контракта — TetherToken, символ — USDT, количество знаков после запятой (decimals) — 6.
  • У токена есть отметка верификации, а среди держателей и переводов — огромные объёмы, а не пара десятков адресов.
  • Во вкладке Contract виден исходный код: функции transfer, approve, balanceOf, а также функции чёрного списка Tether.

Главное правило: сверяйте адрес, а не название. Название токена может задать кто угодно, адрес контракта подделать нельзя.

Как отличить настоящий USDT от подделки и схем с «прошитыми» токенами — в статье flash USDT TRC20: почему это развод.

Где на самом деле лежат ваши USDT

TRX — родная монета сети: её баланс хранится прямо в аккаунте адреса. С USDT иначе. Внутри контракта USDT TRC20 есть таблица: адрес → сумма. Когда кошелёк показывает 500 USDT, он просто спрашивает у контракта функцией balanceOf, какая цифра записана напротив вашего адреса.

Из этого следуют три практических вывода:

  • Кошелёк — это ключ к записи в таблице, а не сейф с монетами. Потеряли сид-фразу — запись осталась, но распоряжаться ею некому.
  • Добавить USDT в кошелёк вручную — значит попросить кошелёк показывать баланс из конкретного контракта. Если добавить чужой контракт, вы увидите чужой токен.
  • Владелец контракта (Tether) может влиять на записи в таблице: в коде есть чёрный список и функции заморозки. Об этом ниже.

Как устроен transfer: что происходит при переводе USDT

Когда вы нажимаете «Отправить», кошелёк не пересылает монету. Он собирает транзакцию типа TriggerSmartContract — вызов контракта — и подписывает её вашим ключом. Внутри три вещи: адрес контракта USDT, имя функции transfer(address,uint256) и два параметра — адрес получателя и сумма.

Сумма передаётся в минимальных единицах. У USDT TRC20 шесть знаков после запятой, поэтому 10 USDT в транзакции — это число 10 000 000. Кошелёк делает пересчёт сам, но если вы работаете через API, ошибка в decimals — частая причина перевода «не той суммы».

Дальше сеть исполняет код контракта в виртуальной машине TRON (TVM):

  • Проверяет, не поставлен ли контракт на паузу и не находится ли отправитель в чёрном списке Tether.
  • Проверяет, что на балансе отправителя хватает USDT.
  • Уменьшает запись отправителя в таблице балансов.
  • Увеличивает запись получателя — или создаёт её, если у адреса ещё не было USDT.
  • Записывает событие Transfer — по нему кошельки, биржи и Tronscan узнают, что перевод состоялся.

Блок в TRON выходит раз в 3 секунды, поэтому сам вызов исполняется быстро. Если на любом шаге проверка не прошла, транзакция откатывается: балансы не меняются, но потраченные ресурсы не возвращаются.

Что значат статусы SUCCESS, REVERT и OUT_OF_ENERGY и как их читать — в статье проверить транзакцию TRC20.

Почему вызов контракта USDT TRC20 стоит энергии

В TRON два ресурса. Bandwidth платит за размер транзакции в байтах: простой перевод весит около 345–360 bandwidth, и каждый адрес получает 600 бесплатных bandwidth в сутки. Энергия платит за работу виртуальной машины — каждую операцию кода и особенно каждую запись в хранилище контракта.

Перевод TRX — это не вызов контракта, поэтому ему обычно хватает bandwidth. Перевод USDT запускает код, читает и переписывает таблицу балансов — отсюда расход энергии. Ориентиры по сети: около 64 500–65 000 энергии, если у получателя уже есть USDT, и около 131 000, если адрес пустой. Если энергии на адресе нет, сеть сжигает TRX: примерно 6,5 TRX за обычный перевод и около 13 TRX за перевод на пустой адрес.

Почему на пустой адрес нужно вдвое больше энергии

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

Почему сумма перевода не влияет на комиссию

Контракту всё равно, переписать 5 или 500 000: это одно и то же число в одной ячейке. Энергия зависит от того, какие операции выполнил код, а не от суммы. Поэтому крупные переводы обходятся в ту же энергию, что и мелкие, — и разбивать сумму на части ради экономии бессмысленно: каждая часть заплатит полную цену вызова.

Есть и сетевой множитель. В TRON работает модель динамической энергии: у популярных контрактов расход на вызов повышается коэффициентом energy_factor, а когда нагрузка спадает, коэффициент снижается. У контракта USDT он ненулевой — это одна из причин, почему цифры в кошельке со временем немного гуляют.

Подробно о множителе и других причинах колебаний — в статье почему комиссия TRC20 каждый раз разная. Исходные правила — в документации TRON о ресурсной модели.

Другие функции контракта USDT, которые стоит знать

  • approve и transferFrom — разрешение другому адресу или сервису списывать ваши USDT. Удобно для DEX и платёжных шлюзов, опасно, если разрешение бесконечное и выдано мошеннику.
  • allowance — показывает, сколько вы уже разрешили списать конкретному адресу.
  • isBlackListed, addBlackList, destroyBlackFunds — чёрный список Tether. Адрес из списка не может отправлять USDT, а его баланс эмитент может обнулить.
  • pause — эмитент может приостановить переводы по всему контракту.
  • basisPointsRate и maximumFee — встроенная в код комиссия эмитента. По данным контракта на 5 ноября 2026 года обе равны нулю: Tether за перевод ничего не берёт, вы платите только ресурсами сети.

Как найти и отозвать выданные разрешения — в статье отозвать approve TRON.

Как увидеть вызов контракта в своей транзакции

  • Откройте свою транзакцию на Tronscan по хэшу (TXID).
  • В поле типа транзакции будет вызов смарт-контракта, а в поле контракта — адрес TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t.
  • Ниже — метод transfer, адрес получателя и сумма.
  • В блоке ресурсов — сколько энергии и bandwidth списано, и сожжены ли TRX, если своей энергии не хватило.
  • Во вкладке событий — запись Transfer: от кого, кому и сколько.

Если адрес контракта в транзакции другой — вам прислали не USDT, как бы токен ни назывался в кошельке.

Как платить за вызов контракта меньше

Энергия для перевода USDT берётся из трёх источников: заморозка своих TRX, сжигание TRX в момент перевода или аренда энергии у того, у кого она есть. Для разовых и регулярных переводов без крупного стейка аренда обычно выходит дешевле сжигания, но точная разница зависит от рынка энергии и курса TRX в конкретный день.

Если вы переводите USDT часто, можно купить энергию TRON под конкретную транзакцию: ресурс делегируется на ваш адрес на выбранный срок, доступ к ключам не нужен. Скорость доставки зависит от сети и поставщиков.

USDT в TRON — это строка в таблице контракта. Перевод переписывает две строки, и платите вы за работу, а не за сумму.

Хотите, чтобы следующий вызов контракта USDT не сжигал TRX? Рассчитайте энергию под свой адрес в боте @overtronbot.

Читайте также

FAQ

Какой адрес у контракта USDT TRC20?

Официальный контракт USDT от Tether в сети TRON: TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t. Название контракта — TetherToken, символ USDT, 6 знаков после запятой. Любой другой адрес — другой токен.

Как проверить, что контракт USDT настоящий?

Откройте адрес контракта на Tronscan: адрес должен совпадать до последнего знака, у токена отметка верификации, название TetherToken и огромное число держателей. Сверяйте адрес, а не название и иконку.

Почему перевод USDT тратит энергию, а перевод TRX — нет?

TRX — родная монета сети, её перевод не вызывает контракт и обходится bandwidth. Перевод USDT запускает код контракта и переписывает его хранилище, а за работу виртуальной машины сеть берёт энергию.

Зависит ли комиссия за USDT от суммы перевода?

Нет. Контракт переписывает одно число в ячейке — для него 5 и 500 000 USDT одинаковы. Энергия зависит от того, есть ли у получателя USDT, и от сетевого множителя динамической энергии.

Почему на пустой адрес уходит вдвое больше энергии?

Если у получателя не было USDT, контракт создаёт для него новую запись в хранилище, а это дороже, чем изменить существующую. Ориентир: около 131 000 энергии против 64 500–65 000 на адрес с USDT.

Может ли Tether заморозить USDT TRC20?

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

Что означает decimals 6 у USDT TRC20?

Контракт хранит суммы в минимальных единицах: 1 USDT = 1 000 000 единиц. Кошельки пересчитывают сами, но при работе через API сумму нужно умножать на миллион.

Берёт ли Tether свою комиссию за перевод?

В коде контракта есть параметры комиссии эмитента, но на 5 ноября 2026 года они равны нулю. Вы платите только ресурсами сети TRON — энергией и bandwidth или сожжёнными TRX.