Written September 6, 2026. A transfer that "hasn't arrived" is almost never gone. It is on a different network than you are looking at, it is a different token than you expected, it is still pending, it was sent to the wrong kind of address, or the receiving service has not credited it yet. This page separates those cases so you can find the money instead of refreshing the balance, and it covers the two confusions that cause most of them: native versus bridged USDC, and Send versus Withdraw on an exchange or trading platform.
Quick answer: Open the transaction on the source chain's explorer. If it is pending, wait or speed it up. If it failed, the funds never left. If it succeeded, look up your address on the destination network's explorer, then switch your wallet to that network; balances are per network, and a bridge may have delivered a different token than you sent (USDC arriving as USDG on Robinhood Chain, for example). If you sent to an exchange, check that its deposit page supports that asset on that network, and that you used Withdraw rather than an internal Send.
Find it in four questions
| Question | How to answer it | What each answer means |
|---|---|---|
| 1. Did the transaction leave? | Paste the hash into the source chain's explorer. | Pending: not gone, not arrived; wait or speed up. Failed: nothing moved; your balance is intact minus gas. Success: go to question 2. |
| 2. Which network did it land on? | Look up your receiving address on the destination network's explorer, not in the wallet. | If the tokens are there, the wallet is simply showing another network. Switch networks. If a bridge was involved, the destination network is the one you chose in the bridge quote. |
| 3. Which token arrived? | Read the token contract on the explorer's transfer, not the ticker. | Bridges deliver the destination chain's version of an asset: USDC can arrive as USDG on Robinhood Chain, as USDC.e on chains without native USDC, or as a wrapped variant. The wallet may not display it until you add the contract. |
| 4. Was the receiver able to credit it? | Check the receiving service's deposit page for that asset on that network. | Exchanges credit only assets on networks they list. An unsupported network means the funds sit at the deposit address on-chain, and only the exchange can recover them, if it will. |
Case 1: It is on a network you are not looking at
Wallet balances are per network. MetaMask shows Robinhood Chain when Robinhood Chain is selected and Base when Base is selected, and a token you hold on one is invisible from the other. The single most common "missing" transfer is a successful bridge whose destination network the wallet has not switched to, or has not added at all. Add the network (Robinhood Chain is chain ID 4663, gas in ETH) and select it. Bots and terminals have the same behaviour behind an "active chain" setting; the BasedBot guide lists it as the most common beginner mistake for a reason.
The reverse case is worse: you withdrew from an exchange to a network your wallet supports but chose a different network on the exchange's withdrawal form. The funds are at your address on that other network. Add it to the wallet and they appear; the exchange did nothing wrong.
Case 2: A different token arrived than the one you sent
"USDC" is not one token. Circle issues native USDC on a set of chains and moves it between them with its Cross-Chain Transfer Protocol, which its documentation describes as a "native burn-and-mint process": USDC is burned on the source chain and minted on the destination. On chains without native USDC, or through bridges that do not use CCTP, what arrives is a bridged representation, often labelled USDC.e or with a different contract entirely, that trades close to a dollar but is a separate token with its own liquidity.
Some bridges convert on purpose. Across delivers USDC to Robinhood Chain as USDG, the Paxos dollar that is the chain's main stablecoin, and turns USDG back into USDC on the way out. That is the route working as designed, and the bridging guide says so up front, but a reader expecting "USDC" in the wallet will read USDG as a loss.
- On the destination explorer, open the transfer and read the token contract and symbol.
- Compare with the deposit contract the receiving service expects, if you are sending on to one. Hyperliquid, for example, takes native Arbitrum USDC; a bridged variant is not credited.
- If the wallet does not show the token, add it by contract address; the balance is there whether or not the wallet lists it.
- Native and bridged variants swap for each other on-chain, at a small cost. Do that before sending to a service that wants one specific version.
Case 3: Send versus Withdraw
Exchanges and trading platforms have two different actions that both look like "move my money". Withdraw broadcasts a transaction to an external chain. Send, transfer, or internal transfer moves a balance to another account on the same platform, off-chain, with no transaction hash the outside world can see. Hyperliquid's support documentation flags this as the mistake behind most missing withdrawals: using Send to an exchange's deposit address puts the funds in a Hyperliquid account the exchange does not control. The fix is on the platform's transfer history: confirm the row says Withdrawal, not Send, and if it says Send, contact the platform's support, because no explorer will ever show it.
Case 4: Pending, and for how long
A pending transaction on the source chain has not moved anything. On Ethereum it is usually a gas price below what the network is clearing; speed it up from the wallet with the same nonce, or cancel it, and never submit a duplicate while the first is live. On layer-2s pending states last seconds. A bridge shows two transactions, the source burn or lock and the destination fill; the second can lag the first by seconds on aggregator routes and by hours or days on canonical bridges. Robinhood's canonical bridge documents about ten minutes into the chain and a seven-day challenge period out, followed by a claim transaction you have to send yourself; a withdrawal that "never arrived" through that route has usually just not been claimed. Aggregators such as Across quote a time in the confirmation; if the destination fill is missing well past it, the bridge's status page with your source hash is where the answer is.
Case 5: The exchange has not credited it
A deposit to an exchange is credited by the exchange, after its own confirmation count, and only if it supports that asset on that network. Check three things on the exchange's deposit page: the network you sent on is listed for that asset, the address you used is the one shown for that network, and the required confirmations have passed. If the network is not listed, the funds are on-chain at the address the exchange gave you; some exchanges recover unsupported-network deposits for a fee, some do not, and the answer comes from their support with the transaction hash, not from waiting.
Sending an unsupported token to a supported address is the same problem in the other direction. The exchange listed USDC on Arbitrum; you sent a bridged USDC.e on Arbitrum; the address is right and the token is wrong. Read the contract on the explorer before you open the ticket, because support will ask.
Preventing the next one
- Send a small test transfer first on any new route, and confirm it on the destination explorer before sending the rest.
- Match three things before pressing send: asset, network, address, and read the receiving side's deposit page for all three.
- Read the "you receive" line of a bridge quote for the asset name, not just the amount.
- Keep the destination chain added in your wallet before the funds arrive.
- Log hashes. A transaction hash finds money; a screenshot of a balance does not.
If the transfer arrived and the problem is a swap that will not go through, that is the swap-failure page.
Sources
- Circle: Cross-Chain Transfer Protocol (native burn-and-mint)
- Circle developers: CCTP supported chains
- Robinhood Chain documentation: bridging (canonical timings, claim step)
- Across: USDC delivered as USDG on Robinhood Chain
- Hyperliquid support: withdrawal has not arrived (Send vs Withdraw)
- Robinhood Chain documentation: adding the network
Join the Discussion