OKX withdrawal time and fees by network
which of 6 chains to use
Three questions to your answer
0.000015 BTC, OKX withdrawal page, September 2026), the slowest of the six to confirm; Lightning is also offered if the receiving wallet supports it.→ ETH: L1 mainnet is most reliable, 0.00012 ETH fee (same reading); in a hurry, use Arbitrum or Optimism if the receiver supports them.
→ Stablecoin: go to Q2.
→ Supports Arbitrum / Polygon / Solana: pick the cheapest on the withdrawal page.
→ Unsure: send a test at that network's minimum withdrawal first (10 USDT on TRC20), then the full amount.
→ Large (> $10,000): prioritise battle-tested chains (BTC / ETH L1 / TRC20) — fees are a tiny share at that size, reliability matters more.
→ Urgent: Solana / Arbitrum confirm quickly, if the receiver supports them.
What this page covers
A withdrawal that hasn't arrived is often down to the network choice, the fee, or OKX's review step rather than a problem with the account. The OKX app already explains where to click, so this page covers what the app does not tell you: how the networks compare, when to pick which, what to do when something stalls, and how to handle coins that need a memo or tag. For safety due diligence first, see Is OKX safe?
6 chains compared side by side
Confirmation times below are estimates from each chain's own confirmation rules; OKX's own processing time comes on top and isn't published. Treat them as relative comparisons, not guarantees.
The fee column is what OKX's withdrawal page showed in September 2026 and only reflects that moment: withdrawal fees can be adjusted, so it isn't a number that sits there unchanged. Before you submit, go by the fee currently shown on the withdrawal page — that's the figure this withdrawal will actually be charged.
| Chain / network | OKX withdrawal fee (September 2026 reading) | On-chain confirmation (estimate) | Verdict |
|---|---|---|---|
| BTC mainnet | 0.000015 BTC | 30-60 min | Stable but slow |
| ETH L1 | 0.00012 ETH | 2-5 min | Solid |
| TRC20 (USDT) | 1.5 USDT (min. withdrawal 10 USDT) | 1-3 min | Widest acceptance |
| Arbitrum (USDC) | 0.0059 USDC | 30-90 sec | Fast + cheap |
| Solana (USDT / USDC) | 0.33 USDT / USDC | ~30 sec | Fastest |
| Polygon (USDT) | 0.012 USDT | ~1 min | Cheap |
Note: the fees above are the OKX platform withdrawal fee, which is not the same thing as the on-chain gas you would pay sending a transaction yourself. OKX adjusts these fees to manage network congestion and price fluctuations, so the fee is neither live gas nor a permanently fixed value — the amount that counts is the one on the withdrawal page when you submit.
What you'll see while you wait: the withdrawal passes OKX's "Under Review" step, then shows "Sent" with a txid; from there the network's own confirmations decide when the receiver credits it.
6 chains in detail: confirmation time and fees (OKX withdrawal page, September 2026)
The previous table is a high-level summary; this one breaks each chain down further: typical confirmation time, the on-chain gas you'd pay sending it yourself, OKX's platform fee, and common scenarios. Confirmation times are estimated from each chain's published confirmation rules; the platform-fee column is what OKX's withdrawal page showed in September 2026 — it gets adjusted, so check the number the withdrawal page is showing before you submit. On-chain gas moves with congestion, so the table only says high or low; for actual figures, go by the withdrawal page and a block explorer at the time. One more thing: OKX has no BEP20 (BSC) network for USDT, which is why that row isn't in the table.
| Chain / network | Avg. confirm time | On-chain gas (sending yourself) | OKX platform fee (September 2026 reading) | Total cost | Best for |
|---|---|---|---|---|---|
| BTC mainnet | 30-60 min | Moves with congestion; climbs sharply when busy | 0.000015 BTC | 0.000015 BTC | Large cold-storage transfers, long-term holding migration |
| ERC20 (ETH / USDT) | 2-5 min | Swings a lot; pricier at peak hours | 0.00012 ETH (0.51 USDT for USDT) | 0.00012 ETH / 0.51 USDT | DeFi deposits, receivers that only accept ERC20 |
| TRC20 (USDT) | 1-3 min | Priced in energy / bandwidth; pricier without energy | 1.5 USDT (min. withdrawal 10 USDT) | 1.5 USDT | Day-to-day USDT transfers |
| Polygon (USDC) | ~1 min | Low | 0.02 USDC | 0.02 USDC | Low-cost small amounts, Polygon ecosystem |
| Arbitrum (USDC) | 30-90 sec | Very low | 0.0059 USDC | 0.0059 USDC | L2 DeFi deposits, high-frequency moves |
| Solana (USDT / USDC) | ~30 sec | Very low | 0.33 USDT / USDC | 0.33 USDT / USDC | Fastest near-instant arrival, memecoins, small payments |
Note: "Total cost" is mainly the OKX platform fee — that's the only fee you pay for the withdrawal, with OKX sending the on-chain transaction and paying for it, so the total ≈ the platform fee the withdrawal page shows at that moment. The "On-chain gas" column only says high or low, to help you decide whether transferring from your own MetaMask or using OKX is the better deal; both move, so compare figures from the same moment, and take gas from a block explorer at that time.
Gas unit conversion quick-reference
When discussing EVM chains (ETH, Polygon, BSC, Arbitrum), not knowing the gas units makes costs unreadable. The table below clarifies the Gwei / wei / ETH relationship, followed by worked examples for common scenarios.
| Unit | = how many wei | = how many ETH | Where you encounter it |
|---|---|---|---|
| 1 wei | 1 | 0.000000000000000001 ETH (10⁻¹⁸) | Smart-contract internal smallest unit |
| 1 Gwei | 10⁹ = 1,000,000,000 wei | 0.000000001 ETH (10⁻⁹) | MetaMask gas-price display |
| 1 ETH | 10¹⁸ wei | 1 ETH | On-chain-facing unit |
Worked cost examples
A standard ERC20 transfer has a gas limit of ~65,000. At gas price = 20 Gwei and ETH price $3,000:
- Total gas = 65,000 × 20 Gwei = 1,300,000 Gwei = 0.0013 ETH
- USD cost = 0.0013 × $3,000 = $3.9
Same transfer at gas price = 100 Gwei (congestion):
- Total gas = 65,000 × 100 Gwei = 0.0065 ETH
- USD cost = 0.0065 × $3,000 = $19.5
So a "gas price climb from 20 to 100 Gwei" translates into the same transfer costing 5x more. OKX's platform fee also gets adjusted with network congestion, but the pace and size of those adjustments are a different matter from live on-chain gas — so which side is cheaper during congestion is something you can only settle on the spot: open the withdrawal page to see what this one will be charged, glance at a gas tracker, and take whichever is lower.
ERC20 gas when you send it yourself: busy chain vs quiet chain
The same ERC20 transfer routinely costs several times more when the chain is busy than when it's quiet. Here's how the two situations compare:
This only matters when you send an ERC20 transaction from your own wallet. OKX's withdrawal fee is set per network and adjusted as congestion changes, but it doesn't track the gas of a transaction you send yourself in real time:
When the chain is busy: the base fee on Etherscan Gas Tracker rises noticeably, and so does the cost of sending one yourself.
When the chain is quiet: the base fee drops back and the same send is much cheaper.
Takeaway: before sending ERC20 yourself, take a look at the Gas Tracker; if it isn't urgent, wait for a quiet spell. As for whether to let OKX do the sending, there's no fixed Gwei threshold to memorise — OKX's side gets adjusted too. Work the break-even out fresh each time: the fee shown on the withdrawal page, against what the gas would cost you to send it yourself right now, and take whichever is lower.
Polygon or Arbitrum: which to pick for USDC
Both are fast-confirming networks, and at the September 2026 reading OKX's withdrawal fee for USDC was 0.02 USDC on Polygon and 0.0059 USDC on Arbitrum — a difference of cents. The real difference is the ecosystem: Arbitrum plugs into DeFi apps such as GMX, Camelot and Uniswap v3; Polygon connects to apps such as Aave V3 and QuickSwap. Route by where the money is going to be used, not by saving a cent and bridging later — a bridge costs its own fee and time.
Chain-by-chain breakdown: when to pick which
BTC mainnet
Use it for: moving BTC into a hardware wallet or self-custody for long-term holding. Avoid it for: routine small payments — fees look small in BTC, but 30–60 minutes of waiting is too slow for any payment use case.
Alternative: for small, fast BTC payments, OKX also supports withdrawing BTC over the Lightning Network (see OKX's help page on Lightning withdrawals); the receiving wallet has to support Lightning too.
ETH L1
Use it for: capital entering DeFi; receivers that only accept ERC20. Avoid it for: small transfers when the receiver supports an L2 — for the same USDT withdrawal, OKX charges 0.51 USDT on ERC20 but only 0.0038 USDT on Arbitrum One (USDT0) (withdrawal page, September 2026), so there's no reason to use mainnet.
USDT-TRC20
The de facto standard for everyday USDT transfers among active users. A few minutes to arrive, supported by virtually every exchange and wallet. But it is no longer cheap: OKX's withdrawal page read 1.5 USDT (min. withdrawal 10 USDT) in September 2026 — more than ERC20's 0.51 USDT. Downside: Tron is relatively centralised, so it does not suit censorship-resistance use cases. Its strength is that almost every receiver accepts it; if the other side also supports networks like Polygon, Arbitrum or X Layer, compare the fees on the withdrawal page before you choose.
Arbitrum / Optimism (Layer 2)
The emerging "L1 alternative". Compatible with ETH L1 (the same address format works on both), with much lower fees — compare the September 2026 readings in the table above. Caveat: the destination wallet must explicitly support the right L2 — sending to an ERC20 address while picking Arbitrum lands the funds on Arbitrum, requiring a bridge back to mainnet (or the recipient cannot receive at all). If uncertain, send a test at the minimum withdrawal amount first.
Solana (SPL)
Confirmations are fast, but withdrawing USDT / USDC from OKX over Solana costs 0.33 USDT / USDC (September 2026 reading) — more than Arbitrum or Polygon; it also has several mainnet outages on record (a few multi-hour halts in 2022 / 2023). Fine for daily use; for large amounts prefer the older chains.
Polygon
EVM-compatible with low fees. Use it when the receiver explicitly asks for Polygon.
The actual withdrawal flow — 5 steps
1. Prepare the receiving address
From the receiving end (wallet or CEX), copy the address. Verify the paste (clipboard hijack malware can swap BTC/ETH addresses).
Key point: addresses are chain-specific. Same USDT, but a TRC20 address (starts with T) and an ERC20 address (starts with 0x) are completely different — send to the wrong chain and the money is lost.
2. OKX app → Assets → Withdraw
Pick the token → paste the address → pick the chain (must match the receiving end).
OKX may show "This address belongs to X platform" or "We have this address on record as X chain" — that is OKX's internal address book; useful as a reference but not 100% accurate.
3. Send a small test first
Send a test at the network's minimum withdrawal amount first (TRC20 is currently 10 USDT; for other chains, follow what the withdrawal page says). Wait for the receiver to confirm it arrived before sending the rest. The extra fee on that test withdrawal can save you from losing $10,000 to a wrong-chain send.
4. Send the full amount + 2FA
Expect two or three verification steps (email, SMS, authenticator). Read the confirmation screen before you enter the codes.
5. Wait + track on-chain
Once OKX shows "Sent" it provides a txid. Paste it into the relevant block explorer (BTC: mempool.space / ETH: Etherscan / TRC20: TronScan / Solana: Solscan) to track on-chain confirmations.
When a withdrawal stalls
Case 1: "Under Review" for over 30 minutes
A large amount or unusual activity can trigger a manual review. First, check your email — OKX may email you asking for more documents. If there is no email and the status still hasn't changed, contact OKX support in the app.
Case 2: "Sent" status but the receiver has not seen the funds
Most likely still confirming on-chain. Paste the txid into the relevant explorer:
- "Confirmed" + still nothing on the receiver side → the receiving wallet or exchange hasn't credited it yet. Exchanges wait for their own number of confirmations, shown on their deposit page.
- "Pending" for a long time (BTC / ETH) → the network is congested. Wait, and if nothing changes, give OKX support the txid.
Case 3: Wrong chain selected
The most expensive mistake. If the receiver is your own wallet and the private key is compatible (e.g. ERC20 sent to the same BSC address — same private key): switch MetaMask to the correct network to find the funds, then bridge back to mainnet.
If the receiver is a CEX → open a ticket and ask for recovery — it only has a chance if both OKX support and the receiving CEX are willing to help, and that isn't common. In most cases the funds are lost.
Case 4: Address typo
On-chain transactions cannot be reversed. OKX has no "recall" function. Recovery is rare. Prevention beats remediation: send a test at the minimum withdrawal amount to any new address first, and enable the withdrawal allowlist.
How to debug a failed withdrawal
If OKX shows "Withdrawal failed" or "Rejected", do not panic — work through the causes below in order:
Cause 1: you've hit the 24-hour withdrawal limit
Identity verification has to be complete before you can withdraw at all. After that, OKX's Help Center says your 24-hour crypto withdrawal limit depends on your fee tier (the limits by VIP tier are in our OKX VIP levels article). If your total for the past 24 hours is near the limit, this transfer may push it over.
- How to check: on the web, the withdrawal page shows your "24h available limit"; in the app, a message appears when you reach it.
- Fix: (1) split the order into smaller transfers; (2) wait for the 24-hour window to roll forward.
Cause 2: Wrong address format / wrong chain
OKX auto-validates the address format on entry (BTC must start with 1/3/bc1, ETH must be 0x + 40 hex characters, etc.). But a valid format on the wrong chain is not blocked — and that is the costliest mistake on this list.
- Receiver gives you a 0x address and asks for Polygon → you pick ERC20 → funds land on ETH mainnet. The receiver does not see them, but the funds did arrive on-chain. They can sometimes be recovered: if the receiver controls the private key for that 0x address, the funds sit at the same address on Ethereum mainnet; if it's an exchange deposit address, only that exchange can help.
- BTC starting with 1 (Legacy) vs bc1 (SegWit / Taproot): OKX supports both and they are inter-compatible — not a way to lose funds.
- How to check: on the OKX confirmation screen, review the "Chain / network" field — it must match the receiver 100%.
Cause 3: Mempool congestion / OKX temporarily paused this chain
Occasionally you will see "This token / chain is currently paused for deposits and withdrawals". Common reasons: (1) the chain just forked (e.g. an Ethereum upgrade window); (2) the chain is under network attack (e.g. the 2022 Solana mainnet halt); (3) OKX internal maintenance.
- How to check: search the OKX announcements in the Help Center for "pause / maintenance / upgrade".
- Fix: (1) switch chains (if USDT TRC20 is down, try Polygon); (2) wait for the resume announcement.
Cause 4: address not on the allowlist, new-address lock, or risk control
If your account has the withdrawal allowlist enabled but the target address isn't in your address book, the withdrawal can't go through. If the address was only just added and the separate new address lock is on, OKX says withdrawals to it are restricted for 24 hours. Withdrawals are also restricted for 24 hours after you change your login password or an authentication method. Separately, a large amount or unusual activity can trigger a manual review.
- How to check: look at your email and any open tickets for a "please provide additional documentation" notice.
- Fix: (1) add the address to your address book (the allowlist itself has no delay; the 24-hour wait only applies while the new address lock is on — see how the two switches differ); (2) provide the documents requested by risk control.
Cause 5: Insufficient balance to cover the platform fee
According to OKX's Help Center, on the latest app and web version the fee comes out of your remaining balance when it's sufficient; if you choose "Withdraw all", it is deducted from the withdrawal amount. Either way the balance has to cover the fee: if you have 0.00001 BTC and the fee is 0.000015 BTC, you will hit "insufficient balance". Same with USDT-TRC20: in September 2026 the withdrawal page showed a 1.5 USDT fee and a 10 USDT minimum, so below that you can't withdraw at all. Practical tip: keep a 1–2x fee buffer rather than going to the last cent.
5 withdrawal pitfalls beginners hit most
Pitfall 1: clipboard-hijack malware swapped your address
Clipboard-hijack malware watches for a copied BTC / ETH address and swaps it for the attacker's when you paste. Funds go straight to the attacker. Prevention: (1) after pasting in OKX, always verify the first 6 and last 6 characters against the source; (2) before a large amount, send a test at that network's minimum withdrawal first.
Pitfall 2: sending to an address that does not support that token
Typical scenario: you send USDT-TRC20 to a CEX deposit address that only supports ERC20 (many CEXs have different deposit addresses per token / per chain). The funds land on-chain but the CEX does not see them and never credits the account — effectively lost. Prevention: always confirm the receiver's "token + chain" pair; reputable platforms label the address with text like "USDT-TRC20 deposit address".
Pitfall 3: over-trusting OKX's "address book" hints
When OKX detects that the destination address belongs to another CEX, it surfaces "This address appears to belong to X" — but this is just a database match, not 100% accurate. Fresh addresses and cold wallets are not in the database. Always treat receiver-side confirmation as the source of truth.
Pitfall 4: the balance is in another account
If the withdrawal page doesn't show the balance you expect, the funds may be held somewhere else. Sub-account funds can't be withdrawn directly, according to OKX's Help Center — transfer them to the main account first. The same page says to close or reduce open positions before withdrawing.
Pitfall 5: using an on-chain withdrawal as a "transfer to a friend"
"I'll withdraw USDT to my friend's OKX deposit address" sends it on a full on-chain round trip — you pay the network withdrawal fee for a transfer that never needed to leave OKX. If both of you are on OKX, look for the option to send to another OKX user by UID on the withdrawal page and check the fee it shows before falling back to an on-chain withdrawal.
Withdrawing XRP, XLM, ATOM or TON: the memo / destination tag
Some networks let many users share one deposit address, and the receiving platform tells them apart with one extra field: a destination tag, memo, tag or comment. When you withdraw from OKX to an exchange on one of these networks, that field is part of the destination address. OKX's address book page says the same: if the destination provides a tag or memo, enter it as well, and confirm that the crypto, network, address and tag or memo all match the destination.
| Asset / network | What the field is usually called | Usual form |
|---|---|---|
| XRP (XRP Ledger) | Destination Tag / tag | a string of digits |
| XLM (Stellar) | Memo | text or numeric; the deposit page says which |
| ATOM and other Cosmos chains | Memo | text |
| EOS | Memo | text |
| HBAR (Hedera) | Memo | text |
| TON | Memo / Comment | text |
Don't use this table as a checklist. Whether a tag is needed depends on the receiving side, not on the coin: the same asset may need one at one exchange and not at another that gives you an address of your own. Go by the receiving platform's deposit page — if it shows a tag, you must fill it in; if it doesn't, leave the field empty.
If you left the tag out
The withdrawal still goes through and confirms on-chain; the coins reach the receiving platform's shared deposit address, but nothing ties them to your account, so your balance there doesn't move. Getting them credited depends on whether that platform will handle the payment by hand: open a ticket with them, with the transaction hash and the address you sent to. Fees, timing and which assets they'll handle differ by platform, so read their help page on deposits sent without a tag.
If you entered the wrong tag
That's worse. If the string happens to belong to another user, the deposit is credited to that person like any normal deposit, and the platform would have to take it back out of someone else's balance — some platforms state they don't do this. A tag in the wrong format (text where digits are expected) usually ends up like a missing one: not credited, waiting for manual handling.
Six checks before you confirm a memo withdrawal
| Check | What counts as a pass |
|---|---|
| Does the receiving deposit page show a tag field? | Yes → it must be filled in; no → leave it empty, don't invent one |
| Is the address copied fresh this time? | Yes, from the deposit page — not from history or a chat |
| Is the tag copied fresh this time? | Yes, from the same page, at the same time as the address |
| Is the network right? | The network chosen on OKX matches the one the deposit page names |
| Has a small amount gone first? | The test has landed and shows in the receiving balance |
| Are the screenshots kept? | One of the deposit page, one of the OKX confirmation |
If you withdraw to the same exchange often, saving the address together with its tag in your OKX address book means you don't retype the tag each time.
Working out a withdrawal before you send it: 4 steps
Using OKX as a cheaper way to send on-chain only works if the platform fee is lower at that moment, and the fee isn't fixed —OKX's Help Center says it dynamically adjusts withdrawal fees to manage network congestion and price fluctuations, so there's no arbitrage posture that works forever, only doing the sums each time. Four steps, in this order:
Step 1: look at the fee the withdrawal page is showing right now
Once you've picked the token and the network, the page tells you what this particular withdrawal will cost. Go by that number, not by figures from any article — this page's tables included. Switching networks on the same token often changes the fee by an order of magnitude, so it's worth flicking between a few.
Step 2: check the destination accepts that network, and what its minimum deposit is
If the receiver is an exchange, go to its deposit page and match up token + network first, then read its minimum deposit amount — anything landing below that often isn't credited and can't be retrieved. If the receiver is a self-custody wallet, confirm the wallet supports that network.
Step 3: work out the arrival amount and compare it with that minimum
If the fee is taken out of the withdrawal (for example with "Withdraw all"), the arrival amount is the quantity you entered minus the platform fee; if it comes out of your remaining balance, the full quantity is sent. Check which applies on the confirmation screen, work out the arrival amount, and check the result sits comfortably above the minimum from step 2. If it's borderline, send a bit more rather than scraping the line.
Step 4: treat time as a cost, but don't expect guarantees
Cheap chains are usually fast too, but congestion, token maintenance and risk-control spot checks all stretch the real elapsed time, and no chain can promise arrival within a few minutes. For money you need urgently, pick a network with fast confirmation that you know the receiver supports, and leave yourself a waiting window; money that isn't urgent can wait a bit longer to save on fees.
For the trading side of the cost, the OKX fee calculator works out spot and futures fees; the withdrawal fee is the one the withdrawal page shows.
FAQ
How long does an OKX withdrawal usually take?
It depends on the network and on OKX's review. OKX's review comes first, and a large amount or unusual activity can send a withdrawal to manual review. After that, on-chain confirmation is slowest on BTC mainnet and quick on networks such as Solana and Arbitrum. The tables on this page are rough estimates; the withdrawal page and the block explorer show where your own withdrawal actually is.
Should I withdraw USDT via TRC20 or ERC20?
Check which one the receiver accepts, then compare the fees on the withdrawal page at the time. OKX's withdrawal page in September 2026: TRC20 1.5 USDT (min. withdrawal 10 USDT), ERC20 0.51 USDT — ERC20 was actually cheaper; TRC20 arrives a little faster and is accepted almost everywhere. If the receiver supports them, Arbitrum One (USDT0) 0.0038 USDT and Polygon (USDT0) 0.012 USDT are cheaper still. OKX has no BEP20 network for USDT, so that option isn't available.
My withdrawal has been "Under Review" for over an hour. Normal?
Not entirely normal, but not necessarily a problem. Possible causes: (1) a large amount or unusual activity triggered a manual review (including withdrawals to high-risk addresses); (2) the token is under maintenance (OKX will have posted an announcement); (3) a recent unusual login on your account. Check the OKX status page and your open tickets first; if nothing has changed, contact support.
Can I recover a withdrawal sent to the wrong address?
Essentially no. Once an on-chain transaction confirms it cannot be reversed, and OKX has no recall function. The only exception: the wrong address happens to belong to another CEX and that CEX has manual interception, which is unlikely. Prevention: send a test at that network's minimum withdrawal first (10 USDT on TRC20); enable the withdrawal allowlist; double-check the first transfer to any new address.
Are OKX withdrawal fees fixed?
They are not fixed in place. OKX's Help Center says it dynamically adjusts withdrawal fees to manage network congestion and price fluctuations, and the fee is not the same thing as the on-chain gas you would pay sending a transaction yourself — the two don't map one to one. So don't memorise any ready-made number: before withdrawing, look at the fee this particular withdrawal is showing on the "Withdraw" page, and if you want to compare it against sending it yourself, price that up against the gas estimate at the same moment (Etherscan Gas Tracker, for instance) and take whichever is lower.