Home / Articles / Tron energy and bandwidth are not the same fee
Tron energy and bandwidth are not the same fee
Short answer
Energy pays for running a contract. Bandwidth pays for the size of the transaction. A USDT transfer needs both: about 64,285 energy (130,285 to a recipient with no USDT) and 345 bandwidth points. Rent 65,000 or 131,000 Tron energy for the expensive part. The free daily bandwidth of an active address covers about one USDT transfer a day. For more, gasrent also rents bandwidth, from 5 minutes to 7 days.
You rented the energy, and a little TRX still left
This is a familiar leftover. The delegation arrived, the USDT went through, and the wallet still burned a fraction of a TRX. It feels like the rental failed. Most of the time the rental did its job, and the leftover is bandwidth, or a few energy units the order did not quite cover.
Tron does not have one "gas" number. It has two resources, and wallets often fold them into a single TRX line, which is why they get confused. Bandwidth is the bytes. A plain TRX transfer is almost entirely bandwidth. Every active account gets a free allowance of it each day, and one ordinary transfer usually fits.
Energy is the work inside a contract. USDT is a contract, so the transfer spends energy on top of bandwidth. There is no matching free daily energy. With none on the address, the network burns TRX for the energy, and that burn is the fee people actually notice. It is several TRX. The bandwidth piece, when it burns at all, is small beside it.
The two balances do not substitute. Renting energy does not fill bandwidth. If you need bandwidth, rent it as a separate order. Freezing TRX for bandwidth does not give you energy for USDT. If a transfer still burns after a rental, look at which resource was short before you buy the same rental again. How much energy the transfer wanted is a different number from how many bytes it was.
What each resource is counting
The energy cost of the USDT call is energy_used on a simulation that succeeded: 64,285 when the recipient's balance slot is already there, 130,285 when it is not. The dynamic-energy penalty is already inside those integers. Bandwidth is not. The energy check returns how much energy the sender has and how much the transfer needs. It also returns bandwidth: the free pool, the delegated pool, the points available for this transfer, and the points it requires (345 for a USDT transfer without a note). It does not return a price; ask for a quote for that.
Bandwidth points are the encoded size of the signed transaction. The activation path measures its own transaction as the raw bytes, a short length prefix, a 65-byte signature, and 64 bytes counted for the result. A USDT transfer is a different encoding, so it is a different point count, and that count barely moves when you change the token amount. A USDT transfer without a note needs 345 bandwidth points, compared with tens of thousands of energy. It is not in the same league as 64,285.
An active account carries freeNetLimit on wallet/getaccountresource. Seeing that field, or EnergyLimit, is how an account is judged to exist at all. The free daily bandwidth quota is that limit. On mainnet it has long been 600 points, and the live value is whatever the resource call returns today. Points past the free quota, and past any bandwidth you froze, burn TRX at the chain's bandwidth price. That price is its own parameter, read at the time of the call, the same way activation prices its bandwidth. It is not the energy fee.
At 100 sun per energy, 64,285 burns 6.428500 TRX. A bandwidth burn on one transfer is a few tenths of a TRX when the free quota is already used up, because you are paying for hundreds of points rather than for 64,285 of contract work. Ordering 65,000 instead of 64,285 does not pay the bandwidth. If the free quota is spent, the byte fee still happens after a perfect energy rental, unless you also rent bandwidth for that address. The way to know you are not short on energy before you blame bandwidth is to check the pair first.
Renting bandwidth on gasrent
gasrent rents bandwidth as its own order, separate from energy. The durations are 5 minutes, 1 hour, 1 day, 3 days, and 7 days. There is no 15-minute bandwidth rental. Volume runs from 1 to 100,000 points. A supplier can refuse a size below its own minimum or outside its packs. The charge comes off the same TRX balance as an energy rental. The free pool and the delegated pool are not added together: rented bandwidth has to cover the whole transfer, 345 points for one USDT transfer without a note. The order does not activate the address. Read how TRON bandwidth rental works, and the bandwidth methods in the API reference.