Contents
- First: find the transaction on the right explorer
- Cause 1: the token is not in the wallet's list
- Cause 2: the wallet is looking at a different network
- Cause 3: the transaction is still confirming
- Cause 4: the receiving side is an exchange that has not credited yet
- Cause 5: the deposit cannot be matched to you
- The bad case
- Decision table
- What to send to whoever has to act
- Checklist
- FAQ
The sender says it went through. The wallet says 0 USDT. Between those two statements there are five ordinary explanations and one bad one, and they are told apart not by refreshing the wallet but by opening the explorer for the network the transfer was made on. A wallet is a window onto a ledger; the explorer is the ledger. When they disagree, the explorer is right.
The five causes follow in the order to check them, then a decision table from the hash to the fix. The wallet facts (how MetaMask, Phantom and Trust Wallet decide what to show) were read on the wallets' own help pages on 12 October 2026.
First: find the transaction on the right explorer
Get the transaction hash from the sender, or from the wallet or exchange that sent. Open it on the explorer of the network it was sent on — not the network you expected.
| Network the transfer was sent on | Explorer | What a USDT transfer looks like there |
|---|---|---|
| TRON (TRC-20) | tronscan.org | A "TRC20 transfer" of USDT, contract TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t, with a confirmation count |
| Ethereum (ERC-20) | etherscan.io | A token transfer, contract 0xdAC17F958D2ee523a2206206994597C13D831ec7 |
| BNB Smart Chain (BEP-20) | bscscan.com | A token transfer, contract 0x55d398326f99059fF775485246999027B3197955 (Binance-Peg USDT) |
| TON | tonviewer.com or tonscan.org | A jetton transfer of USDT, master contract EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs, with a comment field |
| Solana | solscan.io | An SPL token transfer, visible under the receiving address's token accounts |
If the hash is not found, try the other explorers: the one that finds it is the network it was sent on. If none does, the transaction was never broadcast and the USDT has not left the sender.
Write down the network (the explorer that found it), the receiving address exactly as shown, and the token contract. Then paste the receiving address into the same explorer and look at its token balances; that page answers most of what follows.
Cause 1: the token is not in the wallet's list
The explorer shows USDT at your address; the wallet shows no USDT line at all. The USDT is there; the wallet is not displaying that token yet.
Wallets decide what to display in different ways. MetaMask's help page (read on 12 October 2026) says it detects popular ERC-20 and SPL tokens automatically when "Basic functionality" is on, and that any other token is imported by pasting its contract address. Trust Wallet's page says a custom token is added by selecting the network and pasting the contract, and that the usual reason it then does not show is the wrong network or contract, because "the same token can exist on multiple chains with different contract addresses". Phantom's page says tokens it has hidden or filtered remain in the wallet on chain and can be unhidden.
The fix. Switch the wallet to the network the explorer found, then add USDT with the contract from the table above. Never add a contract someone sent you in a message; use the table or Tether's own list.
Worked example. 180 USDT arrived on BNB Smart Chain. BscScan shows the address holding 180 USDT at 0x55d3…7955; the wallet, on BNB Smart Chain, lists only BNB. Add a custom token with 0x55d398326f99059fF775485246999027B3197955 and the 180 USDT appears. Nothing was missing.
Cause 2: the wallet is looking at a different network
The explorer shows USDT at your address on network A; the wallet shows network B. This is common with 0x addresses, because Ethereum, BNB Smart Chain, Polygon and Base share the format and the same key gives the same address on all of them. The USDT is where it was sent; the wallet is reading another ledger.
The fix. Switch the wallet to the network the explorer found; if it does not offer that network, add it or open the address in a wallet that does. For a self-custody wallet that is the whole recovery; for an exchange's address it is not — see cause 5.
One warning: moving the USDT needs that network's fee coin — BNB, ETH, TRX or energy, GRAM. Getting it onto the network you actually wanted is then a swap, for example USDT BEP-20 → USDT TRC-20.
Cause 3: the transaction is still confirming
The explorer shows the transaction pending, or with fewer confirmations than the receiving side waits for. Nothing is wrong; it is early, and how early depends on the network.
| Network | Deposit confirmations a swap on this site waits for | Typical wait |
|---|---|---|
| TRON | 1 | 2–5 min including processing |
| Ethereum | 15 | 4–10 min |
| BNB Smart Chain | 10 | 2–5 min |
| TON | 20 | 3–7 min |
| Solana | 1 | 2–5 min |
These are the counts the swap form uses; exchanges and wallets set their own, and a wallet usually shows the balance after the first confirmation. A transaction pending far longer than the table — tens of minutes on Ethereum — was sent with too low a fee and is waiting in the queue; only the sender can replace it.
If the transfer is a swap deposit, the status page shows the same thing in its "Confirming" stage, with the count it waits for; each stage is explained in Reading a swap status page.
Cause 4: the receiving side is an exchange that has not credited yet
The explorer shows the USDT at the exchange's deposit address with enough confirmations; the exchange balance is still zero. Exchanges credit in batches, require their own confirmation count — often higher than a wallet's — and sometimes pause a network for maintenance. The deposit page states the count; the deposit history shows "processing" or "pending".
The fix. Wait for the count the exchange states, then check its deposit history. If the deposit is not there once the count is met, go to cause 5.
Cause 5: the deposit cannot be matched to you
The explorer shows the USDT at the receiving address, confirmed, and the receiving service does not credit it. Three versions of this:
- Wrong network for that address. You sent on BNB Smart Chain to an address the exchange issued for Ethereum: reachable by the exchange, invisible to its crediting system. Recovery is its decision.
- Missing memo on TON. The USDT reached the exchange's shared address without the comment naming your account. Recovery is a ticket with the hash.
- A different token. A token named USDT with a different contract. If the contract on the explorer is not in the table above, you did not receive USDT.
The first two are worked out in Sent USDT to the wrong network; the TON case in USDT on TON: addresses, memos and the mistakes that lose deposits.
The bad case
The explorer shows the transfer went to an address that is neither yours nor the exchange's: mistyped, swapped on the clipboard by malware, or a contract. If nobody holds its key, or the contract has no function to return tokens, the USDT is not coming back. Compare the receiving address on the explorer, character by character, with the one you meant to give; if they differ, the sender's wallet history shows what was actually pasted.
Decision table
Start with the hash, go down the rows, stop at the first that matches.
| What the explorer shows | Cause | What to do | Who can do it |
|---|---|---|---|
| Hash not found on any explorer | Never broadcast | Check the sender's outgoing history; the USDT has not moved | The sender |
| Pending, or fewer confirmations than the receiver needs | Still confirming | Wait for the count in the table above; nothing else | Time |
| Confirmed; USDT at your address on network A; wallet on network B | Wrong network in the wallet | Switch the wallet to network A | You |
| Confirmed; USDT at your address on the right network; no USDT line in the wallet | Token not added | Add USDT by the contract for that network | You |
| Confirmed; USDT at your address; wallet lists USDT but hides or flags it | Filtered by the wallet | Unhide it, or open the address in another wallet | You |
| Confirmed; at an exchange's address; count met; deposit history shows processing | Exchange crediting delay | Wait for the exchange's stated count and batch | The exchange |
| Confirmed; at an exchange's address; on a network it does not list for that deposit | Wrong network deposit | Their "deposit not credited" form, with the hash | The exchange |
| Confirmed; at an exchange's TON address; comment field empty or wrong | Missing memo | Ticket with the hash, amount and your account | The exchange |
| Confirmed; token contract is not one of Tether's or Binance-Peg | Different token | Treat as a different asset; ask the sender what they sent | The sender |
| Confirmed; receiving address is not the one you gave | Wrong address | Compare character by character; check the sender's clipboard and history | Usually no one |
What to send to whoever has to act
When the table ends at the exchange or the sender, they will ask for the same items. Have them ready in one message:
- The transaction hash and a link to it on the explorer.
- The network the explorer found it on.
- The token contract shown in the transfer.
- The amount, the date and the time with its zone.
- The receiving address exactly as the explorer shows it, and, for an exchange, which account it belongs to.
- For TON, what the comment field contains.
Never send a seed phrase, a private key or a wallet file; no genuine recovery needs them.
Checklist
FAQ
The sender's wallet says "confirmed" but the explorer shows nothing. Who is right?
The explorer. A wallet can show a transaction as sent before it is broadcast or after it was dropped from the queue. If the hash is not on the explorer, it has to be sent again.
Tronscan shows the USDT at my address but my wallet shows 0. Is the wallet broken?
No. Make sure the wallet is on TRON and that USDT at TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t is in its token list; most TRON wallets list it by default, but a fresh install or a hidden-token setting can leave it out.
My wallet shows the USDT but with a warning or in a hidden section.
Some wallets filter tokens they have not verified. The balance is real and on chain; unhide it, or confirm it on the explorer and leave the warning until you need to move it.
How long should I wait before deciding something is wrong?
Until the explorer has answered. A confirmed transfer already shows where the money is, so go down the decision table. A pending one waits for the count in the table; on Ethereum a low-fee transaction can take much longer, and only the sender can hurry it.
The transfer was a swap payout. Where do I find the hash?
On the status page, under the payout, linked to the explorer of the receiving network. The payout comes from a payout address, not from the sender, so look for the amount. The page is explained stage by stage in Reading a swap status page.
The USDT turned out to be on a network I did not want. Now what?
Once the wallet can see it and holds a little of that network's fee coin, change its network with a swap straight to the address where you wanted it — for example USDT TRC-20 → USDT BEP-20 or the reverse.