Etherscan: how to read a transaction page and why the gas was taken but the USDT never arrived

The state of an Ethereum transfer is shown by a single field — Status: Success, Fail or Pending. We go through the transaction page line by line: where to look for confirmation that the USDT moved, why the fee is taken even when the transfer fails, what gas cost on 19.09.2026 and how one stuck transfer blocks all the rest.

Open etherscan.io and paste the transfer hash into the search — a 66-character string beginning with 0x, which your wallet or the sending service will give you. On the transaction page look for the single field Status: it shows Success, Fail or Pending.

Status: Success means the transfer went through. The sign that the USDT really moved is the ERC-20 Tokens Transferred block, not the Value: 0 ETH field, which is always zero when a token is sent. Status: Fail means the transfer did not happen, and next to it you usually see the line ERC-20 Token Transfer Error: the token was not sent, although the fee has already been taken.

In Ethereum the fee is taken even when the transfer fails — the money goes on gas, not on the transfer itself. A stuck transaction also blocks every later transfer from the same address until it is pushed out by a more expensive copy carrying the same number (nonce). How that works is in the sections below.

Success, Fail, Pending — a single status field

The TRON explorer has two status fields, and they do not always agree. Etherscan has one. Everything a person with a stuck transfer needs is written in the Status line at the very top of the card.

A successful ERC20 transfer, a live snapshot of the page on 19.09.2026: Status: Success, Block: 26011545 25 Block Confirmations, ERC-20 Tokens Transferred: 2,181.9706 ($2,181.20) Tether USD (USDT) and right below it Value: 0 ETH ($0.00).

The zero in the Value field frightens people for nothing. USDT is not the network's own coin but a record inside someone else's contract, so when a token moves no ETH moves and the “amount” of the transaction is zero. The proof of the transfer is the ERC-20 Tokens Transferred block. If it is there, the token was sent. The opposite is read off the status: with Status: Fail the state was rolled back and the USDT stayed with the sender.

A failed transfer, captured on the same date: Status: Fail, and under the header two warning lines, word for word — Warning! Error encountered during contract execution [invalid opcode: INVALID] and ERC-20 Token Transfer Error (Unable to locate corresponding Transfer Event Logs), Check with Sender.

The second line is the important one: Etherscan did not find the Transfer event in the logs. Together with Status: Fail that means the state was rolled back and the token was not sent. The numbers from the same page: Gas Limit & Usage by Txn: 195,000 | 195,000 (100%) and Transaction Fee: 0.000027113351655 ETH ($0.07). The limit was used up to the last unit, $0.07 was taken, and the USDT stayed with the sender.

The third value is Pending: the transaction has been broadcast but has not made it into any block yet. We have no live snapshot of a card like that: on 19.09.2026 the network was free and transactions went into a block within a single slot. The state itself and the separate /txsPending section we give from Etherscan's documentation.

Beyond these two examples, Etherscan's own knowledge base names several more reason lines: Out of Gas, Reverted, Bad Jump Destination, Bad Instruction. We give the list from the vendor's documentation and do not claim it is exhaustive.

Why the gas was taken but the USDT were not sent

This is the main misunderstanding people bring to the transaction page, and the answer is unpleasantly simple: the network charges for the work, not for the result. The nodes have already done the computation, so it has been paid for. The contract refusing at the last step gives nothing back.

In TRON it can be different: there a failure caused by a lack of energy may cost the sender nothing, because there was nothing to burn. Ethereum has no such mechanism — the gas that was spent is always charged, and that is not a glitch and not a withheld fee but the way the network is built.

Three typical reasons a USDT transfer fails:

  • The gas limit is too low. A USDT transfer costs more than an ETH transfer. A measurement on 19.09.2026 across 736 successful transfer() calls to the USDT contract: gas used was 41,273 at the minimum, 46,097 at the median and 63,221 at the maximum. A wallet that sets the limit “as for an ETH transfer”, 21,000, will not get there.
  • There is less USDT on the balance than is being sent. The contract cancels the operation, and by that moment the gas has already been spent.
  • The address is on the issuer's blacklist. The contract refuses to carry out the transfer.

The advice to “set a bigger gas limit just to be safe” does not work here. The limit is a ceiling, not a price: unspent gas comes back. When a transfer fails, what is charged is all the gas spent, not the whole limit — but the wallet reserves exactly the whole limit, and for the duration of the transfer that sum drops out of the balance.

What to do after a Fail: check the USDT balance at the sender's address and compare the gas limit with the measured consumption from the list above. In the captured example the limit was not the problem: it was set to 195,000, four times the median 46,097.

The gas was burnt to the last unit because the machine hit a forbidden instruction, and by design such an instruction burns everything that is left. The explorer has a different name for a limit that is too small — Out of Gas, and there is no such line on this page. The explorer is no help here: it reads the blockchain, but it returns nothing and forwards nothing.

What the transfer really cost — line by line

The payment for a transfer is broken down by Etherscan into five lines, and this is the only place where you can see whether someone overpaid. The values in the table come from the snapshot of the successful transfer on 19.09.2026.

Line on the page

What it means

Gas Limit & Usage by Txn: 90,000 | 46,109 (51.23%)

On the left, the ceiling the wallet set; on the right, how much gas was actually spent and what share of the ceiling that is

Gas Price: 2.1026788 Gwei

The final price of one unit of gas

Gas Fees: Base: 0.1026788 Gwei | Max: 200 Gwei | Max Priority: 2 Gwei

Base is the base fee, set by the network itself; Max Priority is the tip for the validator, set by the wallet; Max is the ceiling above which the wallet is not willing to pay

Transaction Fee: 0.0000969524167892 ETH ($0.26)

The total: the gas spent multiplied by the price

Burnt & Txn Savings Fees

Burnt is the part of the fee the network burns, and it goes to nobody; Txn Savings is how much the wallet did not spend against its own ceiling

The arithmetic adds up: Base: 0.1026788 plus Max Priority: 2 make exactly 2.1026788 Gwei from the Gas Price line. The tip in this transfer came out nineteen times larger than the network's base fee — the wallet set it by default, and at that minute the network was empty.

The conclusion worth taking away: on 19.09.2026 almost the whole price of an Ethereum transfer was made up not of the network fee but of the wallet's mark-up. A measurement of the base fee that day across 100 blocks: 0.0932 at the minimum, 0.1248 at the median, 0.1602 gwei at the maximum. What wallets actually paid in the same sample ran from 0.1005 to 15.0 gwei — a spread of up to 150 times.

In money, at the median consumption of 46,097 gas and an ETH rate of $2,640.76 on 19.09.2026: at the base fee of the last block, 0.1048 gwei, the transfer would have cost about $0.013; at the median of what was actually paid, 0.3166 gwei, about $0.039. The line Max: 200 Gwei from the same example is $24.37, but that is a ceiling, not a price.

All these numbers are one day's state. Ethereum gas is traded at auction and changes through the day, so the price before sending is checked at etherscan.io/gastracker: on 19.09.2026 the “Gas:” badge in the explorer's header showed 0.103 Gwei.

Nonce: why one stuck transfer blocks all the rest

A nonce is the sequence number of a transaction from one particular address. On the page it sits in the Other Attributes block as a separate line: in the captured examples it is Nonce: 1 for one sender and Nonce: 1186633 for the other — the wallet of a large service that has sent over a million transactions.

The network processes an address's transactions strictly in ascending order of that number. In Etherscan's own wording, a transaction with a higher number will not get into the blockchain until the transaction with the lower one has been successfully included. That is why a single stuck transfer stops the whole queue.

Hence the two states Etherscan tells apart:

  • Pending — its turn has come: the transaction is ready to be included and is waiting for room in the nearest block.
  • Queued — the transaction is out of the queue and cannot get into the nearest block, because there is an unexecuted one with a lower number ahead of it. If the sender has no other transactions waiting to be included, Etherscan names a wrong nonce as the likely cause.

Replacing it goes by Etherscan's own instructions: build a new transaction with the same parameters, raise the gas price and set its number by hand to that of the stuck one. If you leave the number alone, the wallet will take the next one in line and the new transaction will simply queue up behind the old one; the vendor warns about this separately.

Cancelling in the usual sense does not exist. What Etherscan calls “cancelling” is crowding the transaction out with a blank: a transfer of 0 ETH to yourself with the same number and a higher gas price. The network will take whichever of the two has the higher gas price, and the number turns out to be taken.

A hard limit, and it is worth knowing before you go looking for a way round: a transaction that has already made it into a block can be neither cancelled nor replaced. That applies to a failed one too — Fail is just as final as Success.

In TRON there is no such trouble at all: an unsent transaction lives for 60 seconds and after that the nodes simply drop it, so no queue builds up. A “stuck transfer” is a property of Ethereum and BNB Chain, not of all networks. How many confirmations count as enough is covered separately: transaction confirmations in the blockchain.

If the hash is not in Etherscan at all

The search answers “not found” — that is almost never a fault of the explorer. The reasons differ, and each one calls for something different.

You are searching for the wrong hash. An Ethereum transaction hash is exactly 66 characters: 0x and 64 hexadecimal characters. An order number or an internal identifier in a service's interface is a different string, and it is not in the blockchain. In wallets the field you need is called TxID, Transaction ID or Hash.

The reverse conclusion does not work: the right length does not prove the hash exists in this particular network. Ethereum and BNB Chain use one and the same format, and a hash from one network looks perfectly legitimate in the other. If the transfer actually went through BNB Chain, the same string will turn up in that network's own explorer: checking a USDT transfer on BscScan.

The wallet signed the transaction but did not broadcast it. There was no connection, or the node refused. The sign is easy to recognise: the hash is in the wallet's history, but the explorer shows nothing for it.

The transfer went to a different network. One and the same address 0x… exists in every EVM network at once, and you cannot tell that from the look of the string. Networks are told apart by chain ID: in Ethereum it is 1, in BNB Smart Chain 56 (a direct eth_chainId query on 19.09.2026). The hash is the same one, but the explorers are different.

A clear example is the donation address printed in the footer of both Etherscan and BscScan. On 19.09.2026 it held 42.688948 ETH in Ethereum and 32.017013 BNB in BNB Chain, plus 22,653.74 USDT against 2,066.67 USDT. One string, four independent balances. What to do next: the transfer went to the wrong network.

One more “I can't see anything” case, and this one is not about the hash: people look at the balance rather than at the transaction. USDT does not show up in ETH Balance: it is not the network's coin but a record in someone else's contract.

For tokens the address page has a separate Token Holdings block — according to Etherscan's documentation it opens when you click the wallet icon. Zero ETH and non-zero USDT at the same address is an ordinary thing.

Who makes Etherscan and what not to expect from it

Etherscan is an independent private project launched in 2015, not a division of the Ethereum Foundation; that is how it describes itself on its own “About Us” page. Ethereum has no official explorer at all: the network is decentralised, there are several explorers, and every one of them is a third-party product.

It is a commercial company: there are adverts on the transaction pages and the programming interface has paid plans. Not a flaw, but not a public service either. There is one practical consequence, and it is written in the footer of every page: the explorer is a platform for search and analytics. It reads the blockchain and shows what it has read.

Hence what it is pointless to ask it for: speeding a transfer up, cancelling it, giving money back, unblocking a wallet. The explorer can do none of that. And the other way round: to look at a transaction you do not need to connect a wallet — search by hash and by address works without signing in, and it never needs your private key or recovery phrase.

When the transfer has arrived and it is time to change the USDT, that is our part of the job: we are an exchange service, not an explorer and not a trading exchange. The direction mentioned above: exchanging USDT on the TRON network.

Short answers

Why was the fee taken if the transfer did not go through?

Because the network charges for the work, not for the result: the computation was done, so it has been paid for. With Status: Fail all the gas spent is charged, while the USDT themselves stay at the sender's address. In the example captured on 19.09.2026 that is $0.07 of fee and zero tokens sent.

What does ERC-20 Token Transfer Error mean?

In full it looks like this: ERC-20 Token Transfer Error (Unable to locate corresponding Transfer Event Logs), Check with Sender. Etherscan did not find the Transfer event in the logs.

The line on its own does not prove the token stayed where it was: the most likely cause the vendor names is a contract that does not emit the Transfer event although the balance has already been debited; less often, a paused contract or not enough of the token on the balance. What tells you the transfer did not go through is the neighbouring field, Status: Fail. The vendor advises contacting the sender.

How long to wait if Status shows Pending?

According to Etherscan's documentation a transaction can hang for hours and days if the gas price was set too low; we have no live snapshot of a card like that — on 19.09.2026 the network was free. You can wait as long as the transfer is not getting in the way of the ones behind it. If it is, it gets pushed out by a copy with a higher gas price. The copy's nonce is set by hand, the same one: if you do not change the number, the wallet will take the next one and the new transaction will get stuck in exactly the same way.

Why does the Value field say 0 ETH when I was sending USDT?

That is how it should be. Value shows movement of the network's own coin, while USDT is a record in someone else's contract, and ETH does not move when that record changes. Look for the amount in the ERC-20 Tokens Transferred block, and on the address page in the Token Holdings block.

Author: MW ExchangeUpdated
01

Read next