Cross-exchange perp arbitrage:
one perp, two exchanges, different prices
The same perpetual futures contract trades simultaneously on dozens of exchanges — and its prices rarely match. Long on the cheap exchange, short on the rich — the position is delta-neutral the moment the second leg fills. No asset transfer, no on-chain, no network fees — both positions live purely on margin.Guide: why one perp's prices diverge across exchanges, how funding math pulls the gap toward closing, how to avoid liquidation.
Perpetual arbitrage in plain English
This guide is about cross-exchange perpetual arbitrage: the same strategy as spot cross-exchange, but using perpetual futures instead of spot books and without any physical asset transfer between exchanges.
The perpetual contract on BTC, ETH, SOL and hundreds of other tokens trades at the same time on dozens of perp exchanges: Binance, Bybit, OKX, Hyperliquid, Lighter, EdgeX. Their prices don't match. Each exchange has its own book, its own user base, its own funding-rate mechanism. The gap between one perp's prices on two exchanges is the spread arbitrage captures.
Where the profit comes from
Trade logic: long perp on the cheap exchange + short perp on the rich simultaneously. The position is delta-neutral: price moves — both sides compensate. Profit comes from the gap closing: prices converge to each other, typically in minutes or hours. Funding accruing during the hold can be a tailwind (on the long side) or a headwind (on the short side) — secondary factor; the main profit comes from the spread closing.
Spot cross-exchange: buy on the spot of one exchange → physical transfer of the asset through a blockchain → sell on the spot of another. Requires withdrawal/deposit, eats network fees, takes 30 seconds to 30+ minutes.
Futures cross-exchange (this guide): long perp on one exchange + short perp on another, simultaneously. No asset transfer, no on-chain — only margin on two exchanges. Profit from the price gap closing, hold minutes to hours.
Funding cross-exchange: same long+short structure on two perp exchanges, but focused on the funding-rate difference, not the price gap. Hold runs days to weeks, income accumulates with each funding payment.
Adjacent strategy with a different structure:
Spot-Futures — spot against the perp of the same asset (basis trade). Not pure cross-exchange because both sides can sit on one exchange.
Why perp prices diverge between exchanges
A perpetual has no expiry date. Its price is anchored near spot through the funding rate — but between exchanges, that anchor runs at different speeds and intensities. Hyperliquid pays funding hourly; most CEX pay every 8 hours. When a sharp move hits (news, whale liquidation), every exchange reacts — but not in sync. In that asymmetry window the spread opens.
When perp-perp spreads widen
How the position works and where the costs sit
Perp arbitrage is the cleanest delta-neutral trade in crypto: both sides open instantly, no transfers, no on-chain.
Position structure
On exchange A (lower price): open a long perp. On exchange B (higher price): open a short perp. Both sized N USDT. Now:
- Price moves up → long on A in profit, short on B at loss, net zero
- Price moves down → long on A at loss, short on B in profit, net zero
- Prices converge (gap closes) → spread evaporates, both sides realise the combined profit
That's delta-neutral: profit comes only from the gap closing, not from direction.
Costs
Each side pays a taker fee on opening and closing:
- Open long on A: ~0.045% of volume
- Open short on B: ~0.055% of volume
- Close both sides: another ~0.10%
- Round-trip total: ~0.20%
Funding accumulates over the hold: can be positive or negative. On a short hold (a few hours) usually negligible.
Funding as accelerator or brake
The funding rate works to close the gap: when a perp is richer on one exchange, funding there goes positive (long-holders pay), which pushes the price down. On the cheap exchange funding goes negative (short-holders pay) — which pushes the price up. So the exchange mechanisms themselves nudge the gap toward closing.
How to open and close a perp-arb position
The algorithm is fast: open in minutes, hold for hours. Steps grouped into two phases: Prep + Execute (position open) and Close (exit).
- Prep
-
01
Find a spread ≥ 0.6%
Through a scanner (Finder pings with both sides and a closing forecast) or manually comparing one perp's prices across exchanges. Ignore spreads below ~0.6% — round-trip fees of 0.20% plus slippage will eat the profit.
-
02
Check funding direction
On the rich exchange funding is usually positive (you'd pay if short). On the cheap exchange funding is usually negative (you'd be paid if short — but we're long there). If funding on both sides works against the gap closing (rare), the spread will close slowly, the hold will stretch.
-
03
Prepare margin on both exchanges
Both perp exchanges need USDT/USDC margin sufficient for the position. Sizes on both sides equal. Leverage 3×–5×: enough for capital efficiency, safe for volatility spikes. Cross-margin (where supported) — that's insurance.
- Execute
-
04
Open long on the cheap side
Market order on the lower-price exchange. Taker fee (~0.05%) accounted for. Size must exactly match the planned short.
-
05
Open short on the rich side simultaneously
Right after the long fills — short on the opposite exchange at the same size. The position is now delta-neutral: price can go anywhere, net zero. Profit starts accumulating as the gap between sides narrows.
- Close
-
06
Monitor the gap closing
On most setups the gap closes in 1–3 hours (on a typical HL ⇄ Binance pair — within a Hyperliquid funding cycle). On slow gaps (≤1%) it can take 4–12 hours. The dashboard shows the live spread.
-
07
Close both sides simultaneously
When the gap has shrunk to ~30% of original (or to your target margin), close both sides with market orders. Within 30 seconds — so price doesn't move against one side before the other closes.
-
08
Log the trade
Record: token, long/short exchanges, gap at entry/exit, funding accumulated during the hold, total profit. After 20+ trades you'll have a sense of which exchange pairs regularly deliver workable gaps (typically HL vs CEX), which don't.
Five risks of perp arbitrage
Liquidation on one side during a volatility spike
A sharp up-move liquidates the short, a sharp down-move the long. The remaining side becomes directional risk. Mitigation: leverage ≤3× and cross-margin (where available). On big moves the position can take a large hit even at leverage 3× if cross-margin isn't on.
Exchange technical issues at close time
One of the exchanges can temporarily go down (degraded mode, API incident, upgrade). If the position needs to close but the exchange is unavailable — the remaining side carries directional risk until it's back online. Mitigation: use proven exchanges with aggressive uptime SLAs.
Spread widens further
Opened at 1% spread, it widened to 2%. The unrealised loss on each side grows (though net is still close to zero). On high-leverage positions this creates margin pressure and liquidation risk even if the overall position is stable.
Funding works against you
In rare cases funding on both sides works against the gap closing — the spread doesn't close, and funding keeps being deducted. On a long hold that turns into a clean loss. Mitigation: check funding direction at entry, exit if the gap hasn't closed in 4–6 hours.
Spread too small after fees
Signal shows 0.7% spread, but during open the price moved — actual spread is already 0.5%. Round-trip fees of 0.20% take almost half. Check the current spread at open, not the signal value.
SOL perp: 1.2% spread Hyperliquid vs Binance, 2-hour hold
Step by step — a typical perp-arb trade. Numbers model a typical setup: SOL perp trades at $145 on Hyperliquid, $146.74 on Binance (spread +1.2%). Position size $5000 on each side.
~0.69% over 2 hours = effective APR in the tens of percent if such setups are regular. On Hyperliquid ⇄ Binance they show up several times a day in active markets.
If the spread had widened instead of closing (from 1.2% to 2.0%), unrealised PnL on each side would have moved into the red, but the net position would stay stable. Margin requirements would increase — for leverage 5× on a 1% spread expansion that's +5% to margin usage. At low leverage it's tolerable.
If funding on both sides worked against you (Hyperliquid funding very negative for long, Binance funding negative for short), over the same 2-hour hold you might lose $5–10 to funding — but it's a rare scenario and the signal flags it.
Perp-arb checklist
- Spread ≥ 0.6% — covers round-trip fees of 0.20% with margin to spare.
- Funding direction works toward gap closing (or at least not against).
- Margin on both exchanges sufficient at leverage ≤3×.
- Cross-margin enabled (where available) — for resilience to spread widening.
- Contract type matches (USDT-perp ≠ coin-margined ≠ inverse).
- Position sizes on the two exchanges are equal — exactly, not approximately.
- Exit plan ready: close after capturing 60–70% of the original spread.
- Reserve liquidity in bridge-USDT for emergency margin if the position runs against you.
Common perp-arb mistakes
What you can and can't expect
Perp arbitrage is the fast and delta-neutral type. Hold is measured in hours (1–4 typical), not days. Profit comes from the gap closing between one perp's prices on different exchanges.
What drives results
Main factor — how often tradeable gaps appear. In active markets with volatility and news, gaps show up several times a day. In quiet markets — less often, spreads smaller. The most regular setups are between hourly-funded exchanges (Hyperliquid) and 8h-funded ones (Binance, Bybit).
What's math, not luck
Round-trip fees ~0.20%. To recover even those, the spread has to be ≥ 0.4% post-open (with slippage buffer). On real setups the spread is usually 0.6–2%, giving net 0.2–1.5% per 1–4 hours of hold.
- Typical APR on perp-arb: 50–200% annualised on capital with moderate leverage and regular position-taking. During peak events (volatile weeks) — up to 300%+ APR for short periods.
- Income scales linearly with size, but capped by margin requirements on each exchange.
- Delta-neutral position = zero directional risk when both legs are open. The only risk is liquidation on one side during a volatility spike.
How perp-arb differs from other types
Unlike cross-exchange Spot-Spot, there's no asset transfer — both positions are open simultaneously on two exchanges. Unlike basis hedge (Spot-Futures), both sides are perp, not spot: different margin profile, no asset-delivery problem. Unlike funding arb, profit comes from the price gap, not funding differences — hold is shorter (hours vs days-weeks).
Built for exactly this type of arbitrage
Perp arbitrage requires tracking one contract's prices across 30+ perp exchanges simultaneously, plus each side's funding rate to forecast gap closing. Finder does it in the background: for every perp, compares prices and funding across all exchanges, computes every cross-pair, and pings Telegram only when spread × expected hold delivers clean profit after fees.
What lands in your channel and what the dashboard looks like — below.
Thirty-plus perp exchanges, every contract paired
Including the exchanges most scanners skip — Hyperliquid, Lighter, EdgeX, Phemex — where spreads live longer because depth is concentrated and competitors are thin.
What the futures channel sends
Header carries the spread, magnitude tier, projected net at $1k. Long and Short rows show both perpetual legs with funding rates inline so you see the funding sign before you size the position.
The FUTURES table lists every perp exchange trading the contract, sorted by spread, with funding rate + cadence. Rows where funding works against you are dimmed — useful when you're picking which leg to enter on.
- Magnitude tiers: HIGH ≥1.5%, MEDIUM ≥0.6%
- Funding sign + cadence on every row (1h / 4h / 8h)
- Hyperliquid, Lighter, EdgeX get a dedicated route flag
- No deposit/withdraw checks — perps live on margin
SOL 2.14% ⚡(18$ on $1000) | PERP
1h: +$18 · 4h: +$24 · until close ≈ $32
Watch every perp pair, every funding flip
All perp pairs is the firehose — every exchange-pair for every contract, sorted by spread, magnitude filter, depth filter. Useful when you're shopping for the highest-spread route on a token you already want to trade.
Funding diff sorts by funding-rate divergence: large funding deltas across exchanges telegraph upcoming spread closure. Open the trade before the spread closes, exit after the funding flip.
- Hyperliquid / Lighter / EdgeX surfaced as their own exchange group
- Funding cadence shown so 1h vs 8h exchanges are obvious
- Click any row → side-by-side perp orderbook walk
- No deposit/withdraw status — perps live on margin only
Futures cross-exchange 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 perp–perp arbitrage
Why no transfer? Don't I need the asset on both exchanges?
Hyperliquid funds hourly, Binance every 8 hours — how does that play out?
How long do these spreads typically live?
What's the risk if the spread keeps widening?
Why include Hyperliquid, Lighter, EdgeX specifically?
Different shape, different rhythm.
One perp, two exchanges, different prices — the gap has to close
So you don't have to track one perp's prices across 30+ exchanges by hand — the ping arrives when spread × expected hold delivers clean profit after round-trip fees. All the math is in the message.
Get alerts