Bandwidth: paying for size
Every transaction takes up space in a block, and Bandwidth pays for that space. A simple TRX transfer is around 268 bytes; a USDT transfer is around 345.
Every activated account gets 600 Bandwidth free each day, which covers one or two transactions. Past that, the network burns TRX at 1000 SUN (0.001 TRX) per byte.
Energy: paying for computation
Energy pays for smart contract execution. Sending TRX needs none — it's a plain transfer. Sending USDT needs a lot, because a TRC-20 transfer is a contract call.
A USDT transfer to an address that already exists costs around 65,000 Energy. If the receiving address has never held USDT, the contract has to create a storage slot for it, which roughly doubles the cost to about 130,000.
This is why the same transfer sometimes costs twice as much: it depends on the receiver, not on you.
Where Energy comes from
- Staking TRX. Freeze TRX and receive Energy that regenerates every 24 hours. The TRX comes back when you unstake — this is the cheapest route for regular senders.
- Burning TRX. With nothing staked, the network takes TRX directly at 210 SUN per unit of Energy. A 65,000-Energy transfer burns roughly 13.65 TRX.
- Delegated Energy. Another account can lend you its Energy without giving you TRX. Rental services and gasless wallets work this way.
What it actually costs
- USDT to an existing address, burning TRX — around 28 TRX including Bandwidth.
- USDT to a brand-new address — closer to 40 TRX, because of the extra storage.
- The same transfers with rented Energy — typically 10–20% of that.
- Activating a new account — a flat 1 TRX, burned by the protocol, plus Bandwidth.
Why your transfer failed
"Out of energy" means the account had neither staked Energy nor enough TRX to burn. "Bandwidth not enough" means the daily free allowance was spent and there was no TRX for the byte cost. In both cases the fix is the same: TRX, staked or rented — or a wallet that handles it for you.