Як зменшити комісії за переказ USDT TRC-20: енергія, bandwidth і реальна математика витрат
Чому перекази TRC-20 коштують саме стільки
Переказ USDT у TRON це не просте переміщення цінності. Це виклик смарт-контракту transfer(address,uint256) на контракті Tether, тобто віртуальна машина TRON запускається, завантажує стан контракту, виконує байт-код, оновлює два слоти зберігання (баланси відправника та отримувача) і генерує подію Transfer. Усе це має ціну в ресурсах.
TRON стягує плату за два окремі ресурси: енергія покриває обчислення VM, а bandwidth покриває сирі байти транзакції. Стандартний переказ USDT TRC-20 споживає приблизно 65 000 energy і 345 bandwidth. Потрібні обидва, кожного разу, без винятків.
Ключове розуміння, яке більшість користувачів пропускає: ці ресурси можуть надходити з двох цілком різних джерел, і саме цей вибір визначає вашу реальну вартість одного переказу.
Два джерела ресурсів і скільки коштує кожне
Кожен рахунок TRON заробляє енергію та bandwidth, стейкаючи TRX (Stake 2.0, через системний контракт freezebalancev2). Якщо на вашому рахунку достатньо застейканих TRX для покриття обох ресурсів, ваші перекази коштують нуль TRX комісії. Якщо у вас недостатньо застейканих ресурсів, TRON натомість спалює TRX з вашого рахунку за поточною динамічною ставкою спалювання мережі.
Bandwidth дешевий. 345 одиниць bandwidth, які потрібні переказу, можна покрити невеликим стейком або навіть безкоштовними 600 одиницями bandwidth, які кожен рахунок отримує щодня. Енергія це дорога частина. 65 000 energy зі спалювання зазвичай коштують кілька доларів за переказ при типових цінах TRX, тому користувачі, які роблять перекази без застейканих ресурсів, у підсумку платять за комісії більше, ніж користувачі Ethereum у спокійний день.
Точна вартість спалювання TRX змінюється з навантаженням мережі, тож замість цитувати число, яке буде застарілим, перевірте сторінку цін, щоб побачити поточну цифру перед прийняттям рішень.
Stake 2.0: як насправді працює стейкінг енергії
У Stake 2.0 (живий у мейннеті з квітня 2023 року) ви викликаєте freezebalancev2(amount, 0, resource_type), де resource_type = 1 означає енергію. Застейкані TRX заблоковані, але не витрачені. Ваш рахунок накопичує енергетичну ємність пропорційно вашому стейку відносно загальної кількості застейканої під енергію в мережі. Це співвідношення коливається, тому дохід в енергії на один TRX змінюється з часом.
Одна важлива зміна Stake 2.0: тепер ви можете делегувати енергію на іншу адресу без переказу TRX. Виклик delegateresource дозволяє призначити вашу застейкану енергію на адресу отримувача, і за замовчуванням делегування можна відкликати будь-коли. Є необов'язковий прапорець lock: якщо встановити lock=true, делегування не можна буде відкликати протягом мінімального періоду блокування (наразі 3 дні). Без цього прапорця ви можете повернути делегування коли завгодно. Саме на цій гнучкій моделі будуються сервіси оренди енергії.
Для одного гаманця, який робить випадкові перекази, стейкінг власних TRX має сенс при певному обсязі. Але точка беззбитковості далі, ніж здається, бо ваші TRX заблоковані (розморожування за Stake 2.0 займає 14 днів очікування), а дохід в енергії на TRX динамічний, а не фіксований.
Оренда енергії: коли вона дешевша за спалювання чи стейкінг
Оренда енергії делегує застейкану енергію на вашу адресу на фіксований проміжок: 1 година, 1 день, 3 дні або 30 днів. Ви платите в TRX, використовуєте енергію для переказів протягом вікна, а потім вона завершується. Жодного заблокованого стейку з вашого боку, жодного 14-денного очікування розморожування.
Ціна в TRX за рівнем тривалості змінюється разом з ринком і вартістю капіталу платформи. Рівень на 1 годину найдешевший у абсолютних TRX, рівень на 30 днів найдорожчий, бо базові TRX платформи заблоковані довше. Поточні цифри в TRX за рівнями дивіться на сторінці цін.
Математика при пакетній обробці пряма: орендована енергія постачається як фіксований пул проти вашої адреси на вікно оренди. Вона не поповнюється посеред оренди. Якщо вам потрібно покрити 20 переказів USDT за один день, орендуйте достатньо енергії для всіх 20 (тобто приблизно 20 x 65 000 = 1.3M energy) на будь-яке вікно, яке з запасом охоплює вашу активність. Вартість одного переказу залежить від того, наскільки чисто ваше використання вписується в одне замовлення оренди. Де пакетування допомагає, це bandwidth: один рахунок з 600 безкоштовними одиницями bandwidth на день покриває приблизно один переказ; стейкінг навіть невеликої кількості TRX під bandwidth дає вам достатньо, щоб покривати десятки переказів на день за майже нульову додаткову вартість.
Конкретно про bandwidth: не нехтуйте ним
Більшість гайдів фокусуються на енергії і трактують bandwidth як другорядне. Це здебільшого справедливо, бо енергія домінує у вартості, але bandwidth все одно може спалювати TRX, якщо не бути уважним. Кожна спалена одиниця bandwidth коштує 1000 SUN (0.001 TRX). Переказ на 345 одиниць bandwidth коштує близько 0.345 TRX зі спалювання, якщо у вас немає доступного bandwidth.
Стейкінг TRX під bandwidth (resource_type = 0 у freezebalancev2) надзвичайно ефективний. Навіть невеликий стейк покриває bandwidth для багатьох щоденних переказів. Якщо ви обробляєте обсяги, застейкайте мінімальну суму під bandwidth і орендуйте або стейкайте під енергію окремо. Безкоштовних 600 одиниць bandwidth на день на один рахунок вистачає лише приблизно на один переказ на день з адреси, тож робочі процеси з кількома переказами потребують реального джерела bandwidth.
Практичні стратегії за сценаріями використання
Випадковий відправник (1-5 переказів на місяць)
Спалюйте TRX або користуйтеся орендою енергії з коротким вікном. При такому обсязі стейкінг власних TRX не має сенсу, бо ваш капітал лежить заблокованим, заробляючи енергію, яку ви не використовуєте послідовно. Оренда на 1 годину саме тоді, коли потрібно, зазвичай дає найнижчу сумарну вартість.
Щоденні операції (10-100 переказів на день)
Орендуйте енергію під розмір дня або пакета, і застейкайте невелику суму TRX постійно під bandwidth. Якщо ви керуєте біржовим гаманцем, платіжним процесором або будь-якою автоматизованою системою виплат, попереднє придбання енергії через API підтримує ваш конвеєр в роботі без ручного втручання. API оренди підтримує програмні замовлення, тож ваша система може запитувати енергію перед кожним пакетним запуском.
Операції з великим обсягом (1000+ переказів на день)
На цьому масштабі стейкінг власних TRX під енергію починає конкурувати з орендою за ціною на переказ, але лише якщо ви можете тримати високу утилізацію. Якщо ваш обсяг рваний, а не сталий, оренда все одно виграє, бо ви не платите за простой потужності. Гібридна модель (стейк базової кількості та оренда надлишку під час сплесків) поширена серед бірж і платіжних платформ.
Активація адреси: прихована вартість першого переказу
Якщо ви надсилаєте USDT на нову адресу, яка ніколи не отримувала жодного токена TRC-20 чи TRX, цю адресу потрібно активувати. Активація створює запис рахунку у дереві стану TRON. Протокол TRON стягує за це приблизно 1.1 TRX, спалених з відправника. Це разова вартість на одну адресу отримувача, не повторювана комісія. Для платіжних платформ, які онбордять нових користувачів, це накопичується і має враховуватися у вашій моделі витрат окремо від енергії та bandwidth.
Якщо ви хочете, щоб API оренди обробив активацію у складі замовлення, встановіть preActivateDestinationAddress=1 при розміщенні замовлення енергії, і 1.5 TRX буде списано з вашого передплаченого балансу панелі за цей крок.
Уникнути вартості активації через оренду енергії неможливо, бо активація це не списання енергії. Це фіксована протокольна плата в TRX за створення нового запису рахунку.
Зводимо все разом
Зменшення вартості переказів USDT TRC-20 зводиться до трьох рішень: як ви отримуєте енергію, як ви отримуєте bandwidth, і чи активні вже адреси отримувачів. Зробіть ці три речі правильно, і ваша вартість одного переказу впаде з кількох доларів (чисте спалювання) до значно менше за $0.10 для більшості сценаріїв.
Оптимальне налаштування для більшості розробників таке: разово застейкати невелику кількість TRX під bandwidth, орендувати енергію на переказ або пакет, і окремо відстежувати активацію нових адрес у вашому обліку. Це поєднання дає передбачувані витрати без заблокованого капіталу у 14-денній черзі розморожування.