Energy and bandwidth: two costs, one confusion
Tron does not have a single gas figure. It has two separate resources, and misunderstanding them produces most Tron support tickets.
Bandwidth covers the byte size of your transaction. Every account receives a small free daily allowance, enough for a few simple transfers. Run out and you pay in TRX.
Energy covers smart contract execution. A TRC-20 transfer — which includes every USDT movement — is a contract call, so it consumes energy. There is no free energy allowance at all. You either stake TRX to obtain energy, or you burn TRX to cover it.
The consequence that surprises people: sending USDT on Tron can cost noticeably more than sending TRX, because one is a contract call and the other is not. And the cost varies with the recipient — creating a new token balance consumes substantially more energy than updating an existing one.
| Action | Resource | What people expect | What happens |
|---|---|---|---|
| Send TRX | Bandwidth | A fee | Often free, within the daily allowance |
| Send USDT to an existing holder | Energy + bandwidth | Cheap, like sending TRX | Costs real TRX unless you have staked |
| Send USDT to a new address | Much more energy | Same as any other transfer | Noticeably more expensive |
| Stake TRX for energy | Locks TRX | Reversible instantly | Unstaking has a waiting period |
Tronscan shows energy and bandwidth consumed on every transaction page, and staked resources on every account page. Once you know to look, the fee stops being mysterious.
Why your address looks empty
A TRC-20 transfer is not a Tron transaction moving a token. It is a Tron transaction calling the token's contract, which emits a Transfer event. The value never appears in the transaction's own fields.
The practical consequence is one people hit constantly: an address page showing "no transactions" can still have substantial token activity, because the token movements live on the TRC-20 tab.
This is the same structural pattern as ERC-20 transfers on Ethereum, and it catches people out for the same reason. The main list is not the whole picture, and on a chain where most activity is stablecoin transfers, the main list is barely any of it.
The second practical point is contract verification. USDT on Tron has one legitimate contract address, and tokens have been deployed with the same name and symbol pointing at different contracts. Always check the contract address rather than the displayed name. That habit is worth building everywhere, and it matters more here because the volume of genuine stablecoin activity makes impersonation worthwhile.
Receiving payments on Tron without surprises
If you receive stablecoin payments on Tron regularly, three things are worth doing.
First, stake some TRX for energy. It converts a per-transaction cost into a one-off capital lockup, and across a few hundred transfers the difference is substantial. That is a mechanical observation about the fee model, not investment advice, and the unstaking delay is a real constraint to factor in.
Second, understand that your first receipt of a given token costs the sender more. If you are quoting someone a payment amount, that asymmetry exists and is not anyone doing anything wrong.
Third, bookmark two explorers. Tronscan occasionally lags the chain tip, and 3xpl or OKLink will confirm within seconds whether a transaction exists. Cross-checking an apparent problem against a second index resolves it more often than not.
The reputation question, addressed
Tron has a poor reputation in parts of the crypto world and an enormous amount of genuine usage, and both things are true simultaneously. It is worth being direct about this rather than leaving it implied.
The usage is real and is concentrated in remittance-scale stablecoin transfers, where cheap and fast beats almost every other consideration. For someone sending money across a border, the architectural debates are irrelevant and the fee is not.
The criticisms are also real. The validator set is small relative to other large chains, governance is concentrated, and the network has attracted a share of illicit flows proportional to its convenience for moving value. An explorer cannot resolve any of that, and neither can we.
What an explorer can do is let you verify a specific claim yourself rather than relying on anyone's characterisation. That is the entire argument for public ledgers, and it applies here exactly as it applies everywhere else on this site.
Addresses, formats and the errors they cause
Tron addresses start with T and are base58-encoded, which distinguishes them clearly from Ethereum addresses. They also have a hexadecimal representation used internally by contracts and by some APIs, beginning with 41.
That dual representation causes real confusion. An API returning a hex address and an explorer displaying a base58 one are showing the same address, and people reasonably conclude they are looking at different things. Most explorers convert for display; some tools do not.
The more expensive error is cross-chain. USDT exists on Tron as TRC-20, on Ethereum as ERC-20, and on several other networks. Sending TRC-20 USDT to an Ethereum address, or selecting the wrong network on an exchange withdrawal, is one of the most common ways people lose stablecoins. The address formats differ enough that a careful check catches it, and the check is easy to skip when the interface has pre-filled a network.
When an exchange gives you a deposit address, it also tells you the network. That field is not advisory. Confirm it against the network you are actually sending from, every time, and confirm the first character of the address matches what that network uses.
The same class of error appears on every multi-chain asset. It is worth a habit rather than a rule: before any transfer of consequence, check the network, check the first characters of the address, and send a small test amount when the sum is large enough to hurt.