A withdrawal showing "completed" only means the exchange signed and broadcast the transaction, not that your wallet has credited it. The coins are usually sitting in the mempool awaiting confirmations, or held by the receiving platform's internal policy. Paste the TXID into a block explorer before assuming anything is lost.
Centralised exchanges run withdrawals through an internal ledger. The moment that ledger flips to "completed," the exchange considers its side of the job done, because from its perspective it has handed your transaction to the network. Bitcoin's average block time has held near 10 minutes through 2026, but 60-plus minute waits happen regularly during congestion, and a low-fee transaction can sit unconfirmed for days. None of that changes the status label you are staring at.
The receiving side has its own clock entirely. Binance, Coinbase and Kraken typically wait for 12 to 30 confirmations on Ethereum-based deposits, and 1 to 3 on Bitcoin, before a balance appears. Coinbase, for instance, will show a pending deposit in your history long before it becomes spendable.
There is a harder failure mode worth ruling out early. If the TXID returns nothing on mempool.space, Etherscan or the chain's equivalent, the exchange never broadcast the transaction at all. That happens more than people expect, usually when a manual risk review is queued behind the "completed" flag.
- Broadcast is not credit: "Completed" is an exchange-side accounting event that fires when the transaction is broadcast, not when the destination wallet acknowledges it.
- Confirmation counts differ: Bitcoin deposits usually credit after 1-3 confirmations; Ethereum-based deposits commonly need 12-30, depending on the platform.
- Check the TXID first: A missing TXID on any block explorer means the exchange has not actually sent the transaction, regardless of the status shown.
- Mempool delays are normal: Underpaid transactions can sit for hours or days; mempool.space shows whether yours is still pending.
- Wrong chain is permanent: Sending ERC-20 USDT to a TRC-20 address usually means irreversible loss unless the receiving platform runs a recovery process.
What does 'completed' actually mean on a crypto exchange?
When Binance or Coinbase shows a withdrawal as completed, it means one thing: their system has signed a transaction and pushed it to the network, producing a TXID. That is an accounting event inside the exchange's database, not a statement about the blockchain. Your balance was already reduced the moment you confirmed the withdrawal; the ledger entry flipped from "pending" to "sent" the instant the transaction hit the peer-to-peer network, usually within seconds.
What has not happened yet at that point is settlement. On Bitcoin, a transaction sits in the mempool until a miner includes it in a block, and blocks arrive roughly every 10 minutes on the 2026 average. Coinbase and Kraken typically require 2 to 6 BTC confirmations before they credit an incoming deposit, which is 20 to 60 minutes of waiting if the network is behaving. Ethereum is worse for impatient people: most exchanges want 12 to 30 confirmations for ETH and ERC-20 transfers, and although Ethereum produces a block every 12 seconds, finality is a separate concept entirely. Even once a transaction is in a block, the exchange receiving it may still be running its own fraud checks before it updates your balance, so the TXID showing "success" on Etherscan and your deposit balance showing zero are not contradictory states. They are two different systems catching up with each other.
Why the label says "completed" and not "broadcast"
Customer support economics drive the wording. If an exchange labelled a withdrawal "broadcast" or "awaiting confirmation," a large share of users would open a ticket within minutes, asking whether their money was lost. Support tickets cost the exchange real money, and the majority of those tickets would resolve themselves. Calling the state "completed" nudges people to wait, which is correct behaviour roughly 95% of the time. The trade-off is honest but ugly: the word overpromises to the small minority whose transaction genuinely gets stuck, and those users tend to assume the exchange is lying to them rather than checking the chain.
Two exceptions are worth knowing. Some exchanges hold withdrawals in a manual review queue for 30 minutes to 2 hours and only mark them completed after a human approves and the transaction is broadcast, which means "completed" is genuinely closer to the end of their involvement. Others, particularly for TRC-20 USDT transfers where the fee runs around $1, broadcast instantly and label the withdrawal complete before the receiving wallet has seen anything. Either way, the exchange's status field describes what the exchange did. It never describes what the destination wallet has accepted. Open the TXID on mempool.space or Blockchain.com explorer before you assume anything is wrong.
How to check if your transaction was actually broadcast
This takes about 90 seconds and needs three things: the TXID from your withdrawal history, the name of the chain you withdrew on, and a block explorer that indexes that chain. You do not need a wallet login, an account, or the exchange's app open. Everything below is public data.
Get the chain wrong and you will conclude, wrongly, that your funds vanished. An ERC-20 USDT transfer lives on Ethereum and appears on Etherscan. A TRC-20 USDT transfer lives on Tron and never shows up on Etherscan at all. Check the withdrawal record for a network label, not just the asset ticker.
- Open the exchange's withdrawal history. On Binance this is Wallet → Transaction History → Withdraw; on Coinbase it is under Transactions filtered to Sends; on Kraken it is Funding → Withdrawal history. Find the row, and copy the TXID β sometimes labelled "Transaction ID", "TxHash", or "Hash" β including every character. Do not retype it. A single transposed hex digit sends you to a valid-looking but unrelated transaction.
- Confirm the network before you paste anything. If the row says ETH, ERC-20, or Ethereum, go to Etherscan. If it says BTC or Bitcoin, use mempool.space or Blockchain.com explorer. If it says TRC-20 or TRON, use Tronscan. Matching the explorer to the chain is the step people skip, and it is the single most common source of false panic.
- Paste the TXID into the explorer's search bar and press enter. This is where most users botch the job: they paste into the address field on a wallet app, or into a general web search, and get nothing useful. Paste into the explorer search box only.
- Read the result. If the explorer returns a transaction page, the transaction was broadcast β the exchange did its part. You will see a status line (Success, Pending, or Failed), a block number once mined, a timestamp, and a confirmation count. Bitcoin blocks average roughly 10 minutes in 2026, so a fresh BTC send can sit at zero confirmations for a while. Binance credits BTC withdrawals after 1-2 confirmations; several other venues wait longer.
- If the status is Pending, look at the fee and the mempool. Open mempool.space and check the backlog. In busy periods it has exceeded 100,000 transactions. A BTC fee in the $1-$5 range that looked reasonable during a quiet hour can stall for hours when the queue grows. Ethereum and ERC-20 transfers have the same problem in a different shape: gas fees of $5-$50 in 2026 move with load, and an underpriced transfer waits until the network clears.
- If the status is Success and the block is confirmed, the chain has finished. Six confirmations on Ethereum or three on Bitcoin is enough for practical purposes. From here the delay is on the destination side, not the network.
- Now check the receiving side. If you sent to MetaMask or a Ledger, confirm the wallet is pointed at the same network the funds travelled on β a MetaMask set to Ethereum mainnet will show nothing for a transfer that arrived on Polygon or BNB Chain. If you sent to another exchange, the venue may require 12-30 confirmations on Ethereum before crediting the balance, and that internal delay is invisible on-chain.
- If the explorer returns "no results" or "transaction not found," the withdrawal was never broadcast. Search once more by the receiving address to rule out a copy error on the TXID. If the address shows no incoming activity and the TXID does not exist, the exchange marked the withdrawal complete in its own ledger and never put it on-chain. Contact support with the TXID and a screenshot of the empty explorer result, and ask for an on-chain transaction hash, not a status update. Escalate to a supervisor if the first reply repeats that the withdrawal is "completed."
The failure mode: exchanges batch withdrawals, and a "completed" flag fires when the internal job closes, sometimes before the signed transaction leaves the queue. Most guides tell you to wait and open a ticket. Waiting is the wrong default. If the TXID is not on an explorer, there is nothing to wait for β no block will ever include it. Demand a hash. If support cannot produce one, your funds are sitting in the exchange's hot wallet, and that is a support escalation problem, not a blockchain problem.
Why is my transaction stuck in the mempool?
Every node on a network holds the same short list of transactions it has heard about but has not yet put in a block. That list is the mempool, and it is not a queue in any fair sense. Miners and validators pick from it by fee density, so a transaction paying 8 sat/vB sits behind one paying 40 sat/vB no matter who pressed send first. A Bitcoin block arrives roughly every 10 minutes, and each block holds a finite amount of data. During busy periods the backlog across all nodes has passed 100,000 transactions, which is the moment your cheap transaction stops being "pending" and starts being parked.
The usual cause is arithmetic you did not do. Your exchange quoted a fee when you submitted, but it broadcast at that rate minutes or hours later, after network demand moved. Average BTC fees in 2026 run about $1 to $5, so a send that cost $0.80 in a quiet hour can be hopeless at 17:00 UTC on a weekday. ERC-20 transfers are worse because the fee is gas, not bytes: $5 to $50 depending on load, and a token transfer sent during a spike routinely stalls for hours. TRC-20 USDT is the exception at around $1, which is why so many people move USDT that way and then get confused when they try the same habit with an ERC-20 token.
Reading the evidence yourself
Paste your TXID into mempool.space. If it appears, the transaction exists and is simply unconfirmed; the page shows the fee rate you paid and a live chart of what the next few blocks are currently accepting. Compare the two numbers. If your rate is below the bottom of the cheapest projected block, nothing is broken, you are just outbid. If the TXID returns nothing at all after 30 minutes, that is a different problem and usually means the exchange never actually broadcast, despite the "completed" label in your history.
Mempool.space will also estimate a replacement fee if you control the sending address. From a custodial exchange you do not, so your realistic options are waiting or asking support to rebroadcast at a higher rate. Nodes drop unconfirmed transactions from their mempools after roughly two weeks by default, and an evicted transaction is not gone: the coins never left your exchange's hot wallet, so support can usually cancel and resend. That takes a ticket, not a button, which is why the honest answer for exchange-originated sends is almost always patience. From MetaMask or a Ledger, where you hold the key, you can bump the fee yourself within minutes and skip the whole wait.
Confirmation times: Bitcoin vs Ethereum vs other chains
A block time is not a confirmation time. Bitcoin has produced a block roughly every 10 minutes since 2009 and still does, but Binance credits a BTC withdrawal to the receiving side after 1β2 confirmations, so 10 to 20 minutes of waiting is normal and expected. Ethereum produces a block every ~12 seconds, which sounds like instant settlement until you learn that most exchanges wait for 12β30 confirmations before crediting a deposit, turning a 12-second block into a 2.5 to 6 minute hold.
The table below uses 2026 mainnet figures. Fees move with congestion; a Bitcoin mempool backlog above 100,000 transactions has pushed average BTC fees from the usual $1β$5 range toward the high end within a single afternoon.
| Network | Block time | Typical exchange confirmations | Realistic end-to-end wait | Typical transfer fee |
|---|---|---|---|---|
| Bitcoin (BTC) | ~10 minutes | 1β2 (Binance) | 10β30 minutes | $1β$5 |
| Ethereum (ETH) | ~12 seconds | 12β30 | 3β8 minutes | $1β$10 (native ETH) |
| Ethereum ERC-20 (USDT) | ~12 seconds | 12β30 | 3β8 minutes | $5β$50 |
| BNB Smart Chain (BSC) | ~3 seconds | 10β15 | 1β3 minutes | $0.10β$0.50 |
| Solana (SOL) | ~0.4 seconds | 1 (finality ~13 seconds) | Under 1 minute | $0.001β$0.01 |
| Tron TRC-20 (USDT) | ~3 seconds | 19β20 | 2β5 minutes | ~$1 |
Solana wins outright on raw latency: 1 confirmation and roughly 13 seconds to full finality, which is why it feels like a bank transfer when it works. For anyone moving value rather than experimenting, though, the ERC-20 row is the one most people actually hit, because USDT on Ethereum remains the default settlement rail for most desks β and at $50 gas on a congested day, a $200 transfer can cost you a quarter of its value. The flip happens on Tron: TRC-20 USDT needs ~20 confirmations, which is slower than Solana, but it settles for about $1, and for sub-$500 remittances that fee difference beats the speed difference every time. If your exchange UI says "completed" and the receiving side is Binance, check the deposit page first β it lists the exact confirmation threshold, and that number, not the block time, is what's holding your balance at zero.
Common reasons the receiving wallet hasn't credited your funds
Once you have confirmed on a block explorer that the sender broadcast the transaction, the delay is no longer a blockchain problem in most cases. It is a policy problem, a configuration problem, or an address problem. Work down this list before you open a support ticket, because exchange support will ask you for the same checks anyway.
- The destination exchange is waiting on its own confirmation threshold. Binance credits BTC deposits after 1-2 confirmations, which on a 10-minute block time means 10 to 20 minutes after broadcast on a good day. Coinbase and Kraken apply similar low thresholds for Bitcoin but 12 to 30 confirmations for Ethereum-based assets, since reorg risk on that chain is weighted differently. If your TXID shows 4 confirmations and your Ethereum deposit still reads zero, you are inside the window, not stuck.
- The deposit needs manual review that nobody told you about. Deposits above a risk threshold, from a newly used address, or arriving on an account flagged for a compliance check get pulled into a queue. Exchanges publish "30 minutes to 2 hours" as typical for manual review, but weekends and public holidays stretch that to 12-24 hours. The blockchain has finished its job. A person has not started theirs.
- Your wallet app is not synced to the chain. A desktop or mobile wallet that has been closed for a week shows a stale balance until it catches up on blocks. MetaMask usually resyncs within seconds when opened, but users running a Bitcoin node on a Raspberry Pi can wait hours after downtime. Force a resync or check the same address in a separate explorer before assuming the funds vanished.
- You sent on the wrong network. This is the expensive one. USDT exists as ERC-20 on Ethereum, TRC-20 on Tron, BEP-20 on BNB Chain and half a dozen other standards, and the sending exchange only knows which one you picked at withdrawal. A TRC-20 transfer costs about $1 and confirms in seconds, but MetaMask does not read the Tron chain. The tokens are safe and visible on Tronscan, and completely invisible in an Ethereum wallet.
- You sent to a contract address instead of a wallet. Exchange hot wallets and smart contracts can receive tokens and have no mechanism to forward them. A plain ERC-20 transfer to a contract that does not implement a recovery function is effectively burned, even though Etherscan shows the balance sitting there. Always confirm the destination is an externally owned account you control, or a deposit address the exchange generated for you.
- The deposit address was rotated or deprecated. Some platforms issue a fresh address per deposit and retire old ones after a period. Funds sent to a retired address are usually still recoverable, but the sweep runs on a schedule rather than in real time. Check the exchange's deposit history page for the address you actually used, not the one currently displayed.
- You are looking at a different asset than you sent. This sounds trivial until it happens. A wallet showing "USDT 0.00" on Ethereum says nothing about the USDT sitting on Tron under the same ticker. Add the correct token contract manually or switch networks in the wallet before concluding anything is missing.
The wrong-network case is the one people get wrong most often, because the funds are not lost and that makes the mistake feel less urgent. They are on a chain your wallet does not display by default. A 2026 TRC-20 USDT transfer costs around $1 and settles in under a minute, while the same amount as ERC-20 can cost $5-$50 in gas depending on load, so users pick Tron for the fee and forget that their receiving wallet is Ethereum-only. Recovering it means importing the Tron private key into a wallet that reads Tron, or asking the destination exchange to credit the deposit manually, which most will do once for a fee. Neither solution is instant, and neither is free.
What to do if the TXID exists but funds are missing
Check the confirmation count on mempool.space or Etherscan before you contact anyone. The TXID existing proves the transaction was broadcast; it does not prove the destination wallet considers it settled. Bitcoin blocks average roughly 10 minutes, so a 3-confirmation credit takes about 30 minutes under normal conditions, longer if the mempool is backed up past 100,000 transactions. On Ethereum and ERC-20 tokens, most exchanges require 12-30 confirmations, which puts the realistic floor at 3-8 minutes for a fast block but stretches to well over an hour when gas fees spike and inclusion slows.
If the count is climbing, do nothing. If it is flat for more than an hour with a healthy fee attached, you are stuck behind a backlog and can try accelerating. Some wallets and services support Replace-By-Fee (RBF) for Bitcoin, which rebroadcasts the same transaction with a higher fee without changing the TXID. Bitcoin miners' accelerator programs, including the free ones run periodically by mining pools, can also prioritise a specific TXID. Neither works on Ethereum, and neither works after the transaction confirms. For an ERC-20 transfer already mined at 12 confirmations, acceleration is irrelevant; the delay is now on the receiving platform's side.
When to escalate, and to whom
Once the transaction is confirmed but your Ledger, MetaMask or exchange balance still shows nothing, contact both sides. The sending exchange needs the TXID and the destination address; the receiving platform needs the same plus the asset, network and amount. Send one ticket to each, quote the TXID verbatim, and state the confirmation count. A missing ERC-20 credit at Binance or Coinbase is usually resolved inside a few hours once support has the TXID, because the funds are on-chain and provably yours. Cross-chain confusion is the most common failure: USDT sent over TRC-20 to an ERC-20 address does not arrive, and recovering it needs the receiving platform's manual intervention, not a resend. Never send a second transaction to the same address to "fix" a missing credit.
When should you worry? Red flags and timelines
A missing TXID is the most serious signal, and the 24-hour mark is where you stop waiting and start filing. Every transaction an exchange actually broadcasts gets a hash the moment it hits the network, so if Blockchair, mempool.space and the destination chain's explorer all return nothing for the string in your withdrawal history after a full day, the exchange almost certainly never sent it. Binance and Kraken both route a share of withdrawals through manual review, and a stuck compliance queue can leave the status at "completed" while nothing exists on-chain. Open a support ticket with the withdrawal ID, the exact timestamp, and the withdrawal address, and ask them for the raw signed transaction rather than a status update. They either produce it or they refund you.
If the TXID exists and is confirming, the question shifts to whether it is confirming at a normal rate. Bitcoin averages a block roughly every 10 minutes, so a transaction with a reasonable fee should reach one or two confirmations within half an hour and the six to twelve that most exchanges want inside two hours. When you are past three times the typical window, say six hours for a Bitcoin transfer that should have settled in one, something is off and you should look at the fee rate attached to your transaction on mempool.space. A fee of 1-2 sat/vB sitting behind a backlog that has climbed past 100,000 transactions will not clear on its own; you are competing against everyone else's bids. Ethereum is less forgiving in absolute terms because a stuck ERC-20 transfer holds gas you already paid, and if the gas price was set below the current base fee the transaction sits pending until the fee drops or you replace it. Child-pays-for-parent and fee replacement both exist, but an exchange-sent transaction is not yours to replace, which means your only lever is asking the exchange to rebroadcast with a higher fee.
The case that actually needs a human
Sending to the wrong chain is the failure that consumes weeks, and the odds depend entirely on where the funds landed. Move USDT on TRC-20 to an address that only accepts ERC-20 and the tokens are not lost in any cryptographic sense: the receiving platform controls the keys and can, in principle, sweep and return them, but Coinbase and Kraken charge a recovery fee that has historically run into the hundreds of dollars per case and both reserve the right to refuse. Send BTC on the Bitcoin network to an address that a service generated for Ethereum, and the answer is closer to no. The one detail that changes the arithmetic is custody: if the destination was your own MetaMask or Ledger, no third party can help you and the funds are gone unless you hold the seed for a wallet that also derives that chain. Escalate to the receiving platform's support the same day, include the TXID, and be blunt about which chain you sent from and which chain the address belongs to. That is the only version of this where patience and a clear ticket change the outcome.
Frequently Asked Questions
Why does my crypto withdrawal say completed but I don't see it in my wallet?
Because "completed" on an exchange only means the transaction was signed and broadcast to the network, not that it settled. Your coins exist in the mempool at that moment, waiting for a miner or validator to include them in a block. Until that block is mined and your receiving wallet or platform credits the balance, the funds appear missing.
How long does it take for a crypto withdrawal to arrive after it says completed?
Bitcoin and Ethereum withdrawals typically land in 10 to 60 minutes, roughly one to three block intervals plus the receiving platform's crediting delay. Bitcoin blocks average 10 minutes; Ethereum slots are 12 seconds. During congestion, fees spike and low-fee transactions can sit unconfirmed for hours or days. Coinbase, for example, waits until its own confirmation threshold before crediting, which adds time on top of the chain.
What is a TXID and where do I find it?
The TXID, or transaction hash, is the unique 64-character identifier assigned to your transaction when it hits the blockchain. Find it in your exchange's withdrawal history, usually under a "Details" or "View on explorer" link. Paste that string into a block explorer such as mempool.space for Bitcoin or Etherscan for Ethereum to see confirmations, fee, and destination address in real time.
Can a crypto transaction be completed but not confirmed?
Yes, and it happens constantly. The exchange's "completed" status reflects its own internal ledger: it debited your balance and pushed the raw transaction to peers. Confirmation is a separate event that only the blockchain produces, and it can take minutes or stall indefinitely if the fee was set too low relative to current mempool demand.
What happens if I sent crypto to the wrong network?
The funds are usually gone unless the receiving platform runs a cross-chain recovery service. Sending USDT on Ethereum to a Tron address, for instance, means the tokens sit at an address the recipient cannot spend with their keys. Contact the receiving exchange's support within hours, with the TXID and both network names; Binance and Coinbase operate limited recovery programs but charge fees and cannot guarantee results.
How many confirmations does Binance require for BTC withdrawal?
Binance credits Bitcoin deposits after 2 network confirmations for most users, though the threshold has been as low as 1 during normal conditions and higher during chain reorganisation risk. Withdrawals broadcast from Binance carry its own fee schedule, adjusted periodically. Check the deposit page for BTC in your account, since Binance updates these numbers without notice.