CEX-DEX arbitrage:
exchange orderbook vs on-chain pool
One token on two types of exchange. The price on a CEX comes from an order book; the price on a DEX is computed algorithmically through an AMM curve. When they diverge — there's a window: buy on one side, transfer, sell on the other.Guide: how a CEX book differs from a DEX pool, why spreads appear, how to execute without bleeding to the transfer window.
CEX-DEX arbitrage in plain English
The same token can be bought or sold in two places at once: on a centralised exchange (CEX) and in a decentralised exchange (DEX) pool. Prices on these sides form differently and rarely match at any given moment. CEX-DEX arbitrage is earning on that difference: buy cheap on one side, transfer the asset, sell richer on the other.
How a CEX book differs from a DEX pool
CEX — an order book. The price isn't one number but a queue of offers: some traders post the price they're willing to sell at, others the price they're willing to buy at. A trade happens when someone accepts another's offer. The price moves only when a level is 'eaten' — then the next one shows.
DEX — a liquidity pool. The pool holds reserves of two tokens (x and y), and the price is computed automatically by the formula x · y = k (the product stays constant). Each trade moves the price a little — more so the larger the trade relative to pool size. No order queue, just the pool and the formula.
Because of the mechanics difference, CEX and DEX almost never show the same price at the same moment. On heavily-traded tickers (BTC, ETH) the gap is usually in tenths of a percent — too small for arbitrage. On fresh, low-liquidity alts a 2–6% gap is the working zone.
CEX-CEX: both sides are centralised exchange order books. The transfer between them is a standard withdrawal from one exchange to another. On-chain isn't involved; no bridge risk.
Cross-chain DEX-DEX: both sides are on-chain pools on different blockchains. Between them — a bridge (Lock&Mint, LP, or CCTP). The main risk is bridge hacks or pauses.
CEX-DEX (this guide): one side is an exchange book, the other an on-chain pool. The 'bridge' here is the exchange's own withdrawal: submit a withdrawal → the exchange confirms → tokens arrive in the wallet. The risk isn't a smart-contract bridge but the exchange temporarily halting withdrawals.
Why CEX and DEX prices diverge
How each side works and where the costs sit
To gauge real profit before clicking, you have to understand the mechanics on both sides — what's happening and where the costs are.
CEX side: buy and withdraw
A market order takes orders from the book top-down: first it eats everything at the best ask (for a buy) or the best bid (for a sell), then the next level, and so on — until the required volume is filled. The bigger the trade relative to book depth, the worse the effective price compared to best. It's essentially the analog of AMM slippage — except instead of x · y = k, the walk goes through orderbook levels. Each trade pays a taker fee, usually 0.05–0.1% of volume.
To move the bought asset to the DEX side, you need a withdrawal — the exchange sends tokens to the specified wallet address. This takes anywhere from seconds (Solana, BSC) to 30+ minutes (Ethereum during network load) depending on the network and exchange state.
DEX side: every trade moves the price
The pool holds reserves of two tokens — x and y. The price is computed by x · y = k: the product stays constant. Simple example: a pool holds 100 ETH and 100,000 USDC, so 1 ETH = 1,000 USDC. Buying 1 ETH barely moves price — total cost about 1,010 USDC. Buying 10 ETH at once moves the pool significantly, and each next ETH costs more; total cost about 11,100 USDC (effective price 1,110, 10% worse than starting). That's slippage.
Swap aggregators (1inch, Jupiter, LI.FI) in the exchange window are more accurate — they show a quote, an execution price computed for a specific volume. The number is relatively accurate, but not guaranteed: in the seconds between quote and confirmation, the pool price can shift, and actual execution lands within the slippage tolerance specified in the swap parameters.
Finder does the same — a quote on both sides at the target volume, with fees already factored in. In accuracy it's like a swap aggregator: close to actual execution, but not a guarantee. The price on either side can drift during the confirmation window, and the real result always depends on the book and pool state at click-time.
The 'bridge' between sides is the withdrawal itself
In cross-chain DEX-DEX, a smart-contract bridge sits between sides. In CEX-DEX the 'bridge' is the exchange's own process: submit a withdrawal → the exchange confirms (internally) → sends an on-chain transaction → the transaction confirms on the network. The whole cycle takes 5–30 minutes and is the main risk point: during that time the pool price can move and the spread can collapse.
So in CEX-DEX one of three strategies is especially important:
- speed — react quickly to the signal and execute both sides before the spread closes;
- hedging with a perp during the transfer (neutralises price movement if the transfer still takes minutes);
- hold capital on both sides in advance so you don't have to wait for the transfer at all.
How a CEX-DEX trade actually runs
The algorithm is the same for 'buy CEX → sell DEX' as for the reverse. The only difference is which side is cheaper. Steps grouped into three phases: Prep (filter + validate), Execute (buy → transfer → sell), and Close (hedge and log).
- Prep
-
01
Find the spread
Through a scanner (Finder pings Telegram with both sides) or manually: open the token's trading page on the CEX and quote the same amount through a swap aggregator (1inch / Jupiter) — that gives real prices without delay, unlike the advertised values on CoinGecko or DexScreener. Ignore anything below the minimum acceptable gross spread after estimating costs (~1.5–2% on cheap networks, 3%+ on Ethereum).
-
02
Verify the token contract
On the CEX the token is known — the exchange vetted it at listing. On the DEX side the same ticker can hide a completely different contract (a different project with the same abbreviation or a clone-trap). Open the pool's contract address in a block explorer (Etherscan, Solscan, BscScan — for the matching chain) and compare it against the contract the exchange itself lists for that network (visible on the CEX token deposit page in your account). Mismatch = immediate pass.
-
03
Check deposit and withdrawal on the CEX
On the token page in the exchange account: is withdrawal open in the required network and is deposit not paused. If the trade direction is DEX → CEX — separately check deposit in the network where the pool sits. The main thing that wipes a CEX-DEX trade is a closed deposit or withdrawal discovered after the buy.
- Execute
-
04
Buy on the cheap side
If CEX is cheaper — market buy on the CEX. Taker fee (~0.1%) accounted for. If DEX is cheaper — swap through a DEX aggregator (1inch, Jupiter), tight slippage tolerance (0.5–1% for liquid pools), confirm wallet has native gas.
-
05
Transfer: deposit or withdraw
From CEX to wallet address, or from wallet to CEX deposit address. Critically: pick the right network (if the token has several). If the network requires memo/tag (an identifier field — required for TON, XRP, XLM, EOS and some BSC tokens), fill it exactly — copied from the deposit page, not from memory. Wait for confirmation before doing anything else.
-
06
Sell on the rich side
Market sell on the CEX or swap through a DEX aggregator. Slippage tolerance must be tight — the spread is already narrowing from price movement during the transfer. If the post-fee difference is below plan — take what's there and don't linger: the spread lives in minutes.
- Close
-
07
Optional: hedge during the transfer
If the token has perps, open a short on a CEX (same or different exchange) at the trade size at the moment of the CEX-side buy. That neutralises price movement during the transfer. Funding cost for 5–30 minutes of hedge is negligible vs a potential adverse move on a low-liquidity alt.
-
08
Log the trade
Record the essentials: token, direction (CEX→DEX or reverse), exchange, network, net profit, time. Detailed fee breakdown isn't needed in the moment — the overall picture matters. Without a log you can't tell which assets and routes deliver real profit vs which regularly underperform. After 50 trades, the pattern becomes visible.
Five risks that can wipe a CEX-DEX trade
Deposit or withdrawal closed
The main risk of CEX-DEX. Exchanges periodically close withdrawals (network upgrades, signing incidents, cold-wallet rebalance) and deposits (chain forks, technical work). On fresh low-liquidity alts, withdrawals can be blocked for the first N days after listing — while trading is already open. Always verify status BEFORE buying on the CEX side.
Ticker matches, contract is different — it's not the same token
Under a popular ticker on a fresh chain, a completely different contract can trade. Sometimes — good-faith confusion (another project took the same abbreviation), sometimes — a clone-trap specifically for arbitrageurs that you can buy but not sell. Either way it's not the asset the exchange lists. Always verify the pool contract address against the one the CEX lists (visible on the token deposit page) and run a quick scan through GoPlus or honeypot.is.
Memo/tag forgotten on withdrawal
BSC (some tokens), TON, XRP, XLM, EOS require memo/tag (an identifier field) to credit the right account. Forget it → funds land at the general deposit address with no owner attribution. Support sometimes recovers (paid, slow), sometimes doesn't. Copy the memo from the deposit page and verify it twice.
Wrong network on withdrawal
The exchange lists a token across several networks (BSC + ETH + Tron). Picking the wrong network = funds sent to an address that doesn't exist under the other network. Recovery is complex and not always possible. The withdrawal network must exactly match where the DEX pool sits.
Slippage in small pools and price drift in transit
On low-liquidity alts, two effects compound: a small pool moves on $1k+ trades, and in 5–30 minutes of withdrawal/deposit, the price drifts too. Without a hedge, real net can be 30–50% below the alert on 4%+ spreads. Hedging with a perp short during the transfer is the simplest fix.
WIF: 4.8% spread Solana DEX → Bybit, $1,000 notional
Step by step — a realistic CEX-DEX trade: 4.8% gross spread on WIF between a Solana pool (Raydium) and the Bybit book, $1,000 USDC notional. Numbers typical for a popular memecoin in a mid-active session.
The biggest leaks are price drift during credit and exchange fees. Solana is one of the best networks for CEX-DEX: gas near-zero, withdrawal to large CEX often free, credit in seconds.
On Ethereum mainnet the same $1000 trade would look different: gas +$10, credit slower — so more price drift (typically +$20 instead of +$6). Of the same +48 USDC gross, you'd subtract about $35 instead of $10 — net profit falls from 3.8% to 1.0–2%. That's why the same-looking trade clears on a cheap network but can break even on Ethereum.
If the withdrawal had been closed (happens with fresh tokens) — the trade couldn't have started. If under our ticker a different contract was trading in the pool — you'd hold the wrong asset: at deposit, the credit wouldn't have processed (Bybit accepts only its own WIF contract), and the funds would have been locked in the wallet. That's why the checks at steps 02–03 matter.
CEX-DEX pre-trade checklist
- Token contract address on DEX verified against the project's official source.
- Withdrawal (or deposit) on CEX is open in the required network — verified in account.
- Withdrawal/deposit network matches the DEX pool's network.
- If the network requires memo/tag (some BSC tokens, TON, XRP, XLM, EOS) — memo taken from the deposit page.
- Native gas token is present in the destination wallet — without it the DEX-side swap won't go through.
- Pool depth verified — the trade doesn't move the pool by more than 1% (DefiLlama or DexScreener).
- CEX status check on the token (no delisting, technical work, network upgrade).
- If the token has perps — hedge plan for the transfer window is ready.
Common mistakes that cost money
What you can and can't expect
CEX-DEX arbitrage offers two distinct opportunity types. Most of the time — a daily flow of small trades on low-liquidity alts with 2–6% spreads. On sharp moves (news, listings, panic, dump), the spread can spike to tens of percent — those windows are rare, but one or two such catches can cover a week of regular trading. Quoting alerts-per-day or monthly P&L precisely isn't possible: numbers depend on market conditions, which tokens/exchanges are tracked, reaction speed, and trade size.
What drives results
Spreads widen during volatile sessions — US market open, news reactions, memecoin pump sessions. Quiet weekends produce few opportunities; high-volatility weeks produce many. The same alert delivers different results to two traders — it depends on how fast they run through checklist 02–03 and how cleanly they execute both sides.
What's math, not luck
Trade costs are made of four components: CEX taker fee (~0.1%), DEX pool fee (0.05–1%), gas on the network, and slippage — the price impact from the trade itself moving the pool. Sometimes a withdrawal fee from the exchange is added.
That gives two hard rules:
- A spread below ~1.5% on cheap networks (Solana, BSC, Base) or ~3% on Ethereum mainnet is structurally unprofitable. No matter how attractive the headline.
- Trade volume above ~1% of pool depth will eat itself in slippage before the trade reaches the second side.
How CEX-DEX differs from other types
Unlike CEX-CEX, you don't need accounts on multiple exchanges — one CEX and a wallet is enough. Unlike cross-chain DEX-DEX, there's no bridge and no bridge-hack risk. But you get the withdrawal window: the exchange in the bridge role, and its withdrawal halt = funds locked.
Built for exactly this type of arbitrage
Manually tracking every CEX listing against every DEX pool isn't possible: Bybit alone has 800+ spot pairs, plus 30+ DEX chains with their own pools. Finder runs the comparison in the background: for each token with a pool, finds every CEX listing, walks the pool's AMM curve at the default volume, accounts for taker fees, and pings Telegram only when the net spread is genuinely actionable.
What lands in your channel and what the dashboard looks like — below.
30+ chains scanned, every CEX listing paired
DEX side covers actively-traded pools across the tracked chains. CEX side covers the same 20+ exchanges as Spot–Spot.
CEX exchanges paired against pools: Binance, Bybit, OKX, Bitget, KuCoin, MEXC, Gate, BingX, HTX, Coinex, Bitmart, LBank, XT, Phemex, AscendEX, Hotcoin, Hyperliquid, Lighter, EdgeX.
What the CEX–DEX channel sends
Header carries the token, spread%, magnitude, profit at $1k, and the chain the pool lives on. Buy and Sell rows show the trade direction with a swap link on the DEX side and an exchange deeplink on the CEX side.
The CEX–DEX block lists every exchange trading the token, the pool address, liquidity, FDV, and a token-age check (days since pool created — protects against fresh launches that haven't priced yet).
- Magnitude tiers: HIGH ≥3%, MEDIUM ≥1.5%
- Pool depth + slippage warning per alert
- Token age + FDV inline (filter against day-old pools)
- Anti-fake-dump heuristic flag included
WIF 4.82% ⚡(41$ on $1000) | SOL
SOL:
EPjFWdd5...DkZwyTDt1vBSC:
0x4206931337...d4b8a
CEX-DEX signals — in the unified terminal
CEX-DEX signals arrive in the same web terminal as the other arbitrage types. The CEX-DEX chip filter at the top of the table leaves only exchange-pool pairs on screen, hiding CEX-CEX and DEX-DEX.
Each row — token, buy and sell exchanges, price, spread with profit at the default size, and a mini 24h spread chart. The row can be expanded to see every alternative route for the same token.
- One shared stream — switch directions with one click on the chip
- Search by token symbol or exchange name
- Filters: minimum spread, minimum profit, magnitude tiers, hide closed routes
- Row expansion — all alternative routes for the same token
- Mini 24h spread chart in every row
CEX–DEX is free during beta
All arbitrage types are included with no tiers or quotas while the product is in beta.
Full feature access while we polish
All arbitrage types, every exchange, every alert tier — no plans, no card, no quota. We'll announce pricing before launch; early users keep grandfathered terms.
- Every CEX–CEX, CEX–DEX, DEX–DEX and funding alert
- Telegram bot + web dashboard, both included
- All 25+ exchanges, all networks, full asset coverage
- Pre-flight: open routes, taker fees, fillable depth checked on every signal
Practical questions about on-chain arbitrage
How is this different from DEX-Dumps?
What about gas costs and MEV?
Can I trust the pool depth numbers?
What's the smallest spread that's still worth it?
Different shape, different rhythm.
CEX and pool prices drift all day. Finder watches all of them
So you don't have to do it by hand — the ping arrives when the spread, after every cost, is still worth taking. All the information you need to act is in the message.
Get alerts