TokenQR

Same address, wrong chain: the disappearing balance mistake

Updated · 6 min read

There is a class of stablecoin panic that has nothing to do with scams or lost keys. Someone sends USDT to their own address, the transaction confirms, the explorer shows it as successful, and the wallet shows zero. The money isn't gone and the address wasn't wrong. The chain was.

One key, many ledgers

Ethereum, BNB Smart Chain, Base, Arbitrum, Optimism and Polygon are separate networks that happen to speak the same language. They use the same address format (0x plus 40 hex characters) and the same elliptic curve, so your private key controls a valid address on every one of them at once. That's a feature: one wallet, many chains, no new addresses to remember.

It is also a trap: the address string carries no information about which chain it means. 0x742...e4 on Ethereum and 0x742...e4 on BNB Smart Chain are the same identity in two different books. Send to the right identity on the wrong book, and the entry lands in a ledger your wallet isn't currently looking at.

What actually happened

Nothing was lost. The balance exists, on that other chain, under your key. What's missing is the wallet viewing that chain:

  • In most wallets you can add the network (MetaMask: Add network; Rabby and most modern wallets already include the common ones). Switch to the chain you sent on and the balance appears.
  • On exchanges, deposits are credited per network. A TRC-20 deposit address and an ERC-20 deposit address for the same account are different strings, which is why exchange deposit screens make you pick the network before showing the address. A BEP-20 deposit to an ERC-20 address, on the other hand, arrives at an address you control on that chain, and recovering it is an exercise in adding networks, not filing tickets.

The test that settles it in ten seconds

Copy the transaction hash from the sender. Open the explorer for the chain the sender says they used (Etherscan for Ethereum, BscScan for BNB Smart Chain, and so on). If the transaction is there and the "to" address is yours, your money is on that chain. Now make your wallet look at that chain. If the transaction is not there, check the explorer for the chain the sender actually broadcast on, the network name in the transaction itself is the ground truth, not what the sender intended.

Making it not happen again

  • When you receive, send the QR or the address together with the network name, always. A card that prints only 0x742... and nothing else is asking for this exact mistake. On TokenQR the network is part of the card, because an address without a network is half an instruction.
  • When you send, copy the address from the receiving screen of the exchange or wallet that will spend it, and confirm the network on that same screen.
  • For anything above a small amount, test first. One transaction of a few dollars arrives or doesn't arrive in minutes and answers the network question definitively.

If it still looks wrong

Same-chain mistakes (wrong ERC-20 token, for example) are rarer than they feel, because wallets show token balances per contract. The classic disappearing balance is chain confusion, and chain confusion is always recoverable when the address is yours. The unrecoverable mistakes are the ones where the address itself was wrong. This one, with the right address and the wrong book, is paperwork, not loss.

../../usdt-bep20-qr-code/ is where BEP-20 cards get their network printed; ../../usdt-erc20-qr-code/ does the same for Ethereum deposits. Same address, different label, exactly as the ledger sees it.

Make a USDT card with the network printed on it. Open TokenQR

Keep reading