Docs / Guides / TRON energy
TRON energy, explained
"Why did my wallet burn 13 TRX to send USDT?" — the resource model behind every TRC-20 transfer, in plain language.
The problem
Two things surprise everyone who touches USDT on TRON. First: a "free-gas blockchain" charges you real money — a plain USDT transfer typically burns several TRX (often $1+ at market prices) if you haven't prepared. Second, and worse: a wallet holding only USDT can't move it at all. No TRX, no transfer — funds are effectively stuck until someone tops the wallet up with gas money.
How the resource model actually works
TRON doesn't have a gas market like Ethereum. Instead every transaction consumes two metered resources:
- Bandwidth — pays for the transaction's bytes. Every account gets a small free daily allowance (600 bandwidth — enough for a couple of plain TRX transfers).
- Energy — pays for smart-contract execution. Native TRX transfers use none; a USDT (TRC-20) transfer runs contract code and needs roughly 65,000 energy (about double when the recipient has never held USDT, because initializing their balance record costs extra).
Where do these resources come from? Three sources, in order of cost:
- Staking: freeze TRX and you receive a continuous energy/bandwidth allowance — near-free transfers if you transact regularly and can park capital.
- Renting/delegation: energy markets let someone else's staked TRX be delegated to your address for minutes or days — typically 60–80% cheaper than burning.
- Burning: the default when you have neither — the network converts the deficit to TRX and burns it at a fixed rate. This is the "why did I pay 13 TRX" path. The
fee_limitfield caps how much a transaction may burn; set it too low and the transaction fails while still consuming resources.
What to do about it
- Sending occasionally? Just burn — but set a sane
fee_limit(≈30–50 TRX ceiling) and keep a TRX buffer in every sending wallet. - Sending daily? Stake TRX on your hot wallet, or rent energy right before batches — the break-even arrives fast.
- Building a product? Estimate energy per transfer (new-recipient transfers cost ~2×), monitor your pool, and remember the USDT-only-wallet deadlock when designing sweeps.
Receiving USDT, on the other hand, costs nothing — the sender pays. If your actual problem is knowing when deposits arrive (rather than paying to move them), you don't need any of the machinery above: tronhooks watches your addresses and delivers confirmed-deposit webhooks or Telegram alerts, no TRX, no node, no polling.
Know the moment USDT lands — signed webhooks or Telegram, free for 3 addresses.
Start watching an address →