Atomic on-chain arbitrage has a beautiful cheat code: the flash loan. You borrow a million dollars, do the trade, and repay it inside a single transaction — if any step fails, the whole thing reverts and you never needed the capital at all. Cross-chain arb does not get that toy. There is no flash loan that reaches across chains, because a transaction on Chain A cannot atomically wrap a transaction on Chain B. The money has to be yours, and it has to already be sitting on both chains before the opportunity shows up.
That single fact — capital must be pre-positioned, finite, and idle — is the whole economic story of this lesson. It turns a strategy that looks like free money per trade into a capital-intensive business with a return-on-capital problem.
Why you must pre-position on both sides
Picture a currency-exchange kiosk at an airport. To serve a tourist who wants euros for dollars, the kiosk must keep both dollars and euros in the till. It cannot conjure euros the instant a tourist walks up — if the euro drawer is empty, the deal simply doesn’t happen, no matter how good the rate is. Cross-chain arb is exactly this kiosk, run across two blockchains.
Before you read — take a guess
ETH trades at $2000 on Chain A and $2020 on Chain B. To buy cheap on A and deliver on B and fill BOTH legs promptly, what must already be sitting where, before the gap appears?
Definition. Inventory is the working capital you hold on each chain so you can fill a leg the moment a price gap opens. For our canonical setup you hold the buy-side currency (USDC) and the sell-side asset (ETH) on each chain, so you’re ready to trade in either direction:
Worked example. You pre-position $2,000,000 of working capital on Chain A and $2,000,000 on Chain B. Total capital committed:
That’s $4,000,000 parked across two chains before you’ve made a single dollar of profit, just so both kiosk drawers are stocked.
The flash-loan reflex
The atomic-arb instinct is “I’ll borrow the capital, trade, repay — zero inventory risk.” That reflex is wrong across chains. There is no cross-chain flash loan: the buy executes on A and the sell finalizes on B in separate transactions, so nothing can wrap and unwind them together. The capital is yours, it’s exposed during the settlement window, and it must be there first.
Fill in the contrast between atomic and cross-chain arb.
Choose the correct option for each blank and check.
Atomic on-chain arb can be because a funds the whole trade inside one transaction. Cross-chain arb is because the inventory must be on both chains.
When it matters
Pre-positioning matters the instant you size a cross-chain strategy. If you budget like an atomic arber — “I only need gas, the flash loan does the rest” — you’ll model a capacity that doesn’t exist. The real question isn’t “how big is the gap?” but “how much inventory am I willing to lock on each chain, idle, to chase it?”
Same-direction flow drains one side
Now suppose the mispricing is persistent: ETH is reliably cheaper on A than on B, so every trade is “buy on A, deliver on B.” Back at the kiosk: every customer hands you dollars and wants euros. Your euro drawer empties, your dollar drawer overflows, and eventually you’re out of euros and have to close the window — even though customers are still lining up.
Before you read — take a guess
You keep doing the SAME trade — buy on A, sell on B — over and over. What happens to your two inventories?
Drag the slider below until one side hits zero. This is the whole pitfall in one picture: push net flow toward “sell on B” and watch the B drawer drain while A overflows. When B hits zero you’ve hit capacity for this cycle — the gap can stay wide open and you still can’t trade.
- Chain A inventory
- 1,000
- Chain B inventory
- 1,000
- Total capital locked
- 2,000
- Rebalance cost to recenter
- 0
Each cross-chain arb delivers to one chain and piles up on the other, so same-direction trades drain one inventory toward zero. Hit zero and your throughput is capped — not by the opportunity, but by your stock. To keep going you must rebridge inventory back (a fee, plus settlement time), and the whole time your total capital sits locked on both chains earning nothing. That capital drag is the opposite of capital-light atomic arb, where a flash loan funds the trade for free inside one transaction.
Definition. Same-direction (one-way) flow is a sequence of arbs that all consume the same chain’s inventory. Each trade subtracts your trade size from the depleting side:
where is the per-trade size and the number of trades. Inventory hits zero when .
Worked example. You start with $2,000,000 on B and trade $200,000 of ETH per arb:
You get about 10 trades before B is exhausted and the window slams shut — regardless of how many more juicy gaps appear in block 11.
“The opportunity is infinite, so I'll just keep trading”
The gap may be persistent, but your inventory is not. Each fill is a withdrawal from a finite drawer. Treating a recurring opportunity as recurring capacity is how desks discover, mid-session, that they’re out of B-side asset with the spread still glowing on screen. Opportunity is a flow; inventory is a stock — and the stock runs dry.
You start with $1,500,000 of deliverable inventory on B and trade $250,000 per arb in the same direction. How many trades before B is empty?
When it matters
It matters the moment your flow stops being two-directional. A market that oscillates (cheap on A, then cheap on B, then back) self-rebalances for free. A market with a structural one-way lean — one chain that’s persistently the buy side — drains you steadily and forces paid rebalancing. Know which regime you’re in before you commit inventory.
Capacity is capped by inventory, not opportunity
Here’s the line that should be tattooed on every cross-chain desk: throughput per cycle is set by your inventory on the depleting side, divided by your trade size — full stop. The size, frequency, and lusciousness of the gap don’t enter the formula. You already met this shape in the prerequisite course as the AMM-depth ceiling: pool depth capped how much you could trade before slippage ate the edge. Same idea, new bottleneck — now it’s your own capital that’s the depth.
Before you read — take a guess
What primarily caps how many cross-chain arbs you can fill in one cycle (before rebalancing)?
Definition / formula. Cycle capacity is the number of arbs fundable before you must rebalance:
Bigger inventory buys more trades per cycle — but it also locks more capital. The dial that turns up capacity is capital, and capital is never free.
| Depleting-side inventory | Trade size | Trades per cycle | Capital locked (both sides) |
|---|---|---|---|
| $1,000,000 | $200,000 | 5 | $2,000,000 |
| $2,000,000 | $200,000 | 10 | $4,000,000 |
| $4,000,000 | $200,000 | 20 | $8,000,000 |
| $2,000,000 | $100,000 | 20 | $4,000,000 |
Worked example. Doubling depleting-side inventory from $2,000,000 to $4,000,000 (at = $200,000) doubles trades per cycle from 10 to 20 — but it also doubles total capital locked to $8,000,000. You bought throughput with capital, one-for-one.
Sort each factor by whether it changes your per-cycle TRADE COUNT or only your PROFIT PER TRADE.
Place each item in the right group.
- Trade size s
- How much capital you pre-position
- Depleting-side inventory size
- Net edge after fees and drift
- Width of the price gap (e.g. 1% vs 2%)
Confusing a fat gap with high capacity
A 2% gap is twice as profitable per trade as a 1% gap — but it does not let you do more trades. If your inventory funds 10 fills, it funds 10 fills whether each one nets 0.7% or 1.4%. Sizing your strategy off the gap’s width instead of your inventory’s depth is how you promise a backer throughput you physically cannot deliver.
When it matters
Capacity-as-inventory matters whenever you’re forecasting volume or pitching size. “We can capture this all day” is only true up to inventory ÷ trade size trades — after that you’re idle until a (costly, slow) rebalance. Forecast in cycles, not in opportunities.
Rebalancing cost & time
So B is empty and A is overflowing. To reopen the window you must rebalance: rebridge inventory from the full side back to the empty side. That costs the bridge fee, and — because this is itself a cross-chain transfer — it eats the settlement/finality wait too. While the capital is in transit it is unusable: not trading, not earning, just floating between chains like luggage on a delayed flight.
Before you read — take a guess
Rebalancing inventory from the full chain back to the empty one costs you which TWO things?
Definition / formula. The rebalancing fee is the bridge rate times the amount moved; amortized per trade it’s that fee spread across the trades the rebalance re-enables:
where is the bridge rate (5 bps here), the amount rebridged, the gross spread captured per trade, and the trades the rebalance unlocks.
Worked example. You rebridge $1,000,000 back to B at a 0.05% bridge fee:
plus roughly 4 minutes of downtime while that $1,000,000 settles (no trading on those funds meanwhile). That $1,000,000 refills 5 trades of $200,000. Amortized, the rebalance costs:
On a $200,000 trade, $100 is 5 bps of drag — small if you rebalance rarely, but a recurring tax that grows the more often you have to do it. Rebalance after every 2 trades instead of every 5 and the per-trade tax climbs sharply.
| Trades unlocked per rebalance, | Rebalance fee | Amortized cost per trade | As bps of a $200k trade |
|---|---|---|---|
| 10 | $500 | $50 | 2.5 bps |
| 5 | $500 | $100 | 5 bps |
| 2 | $500 | $250 | 12.5 bps |
Sizing the strategy as if rebalancing were free
A back-of-envelope that counts only gross spread per trade and ignores the rebalancing tax is the classic trap. A strategy that looks like +0.7% per fill can go net-negative once you amortize $500-a-pop rebalances over too few trades — especially in a structurally one-way market where you rebalance constantly. Always net the amortized rebalance cost out of the edge before declaring victory.
Gross edge is 0.7% on a $200,000 trade ($1,400). A rebalance costs $500 and unlocks just 2 trades. What's the NET edge per trade after amortizing the rebalance?
When it matters
Rebalancing cost matters most exactly when the opportunity looks best: a strong, persistent one-way gap. The stronger the lean, the faster you drain, the more often you rebalance, and the heavier the amortized tax. Net it in before scaling, not after.
The capital drag (return on capital)
Now the honest part — the part that turns a trader’s grin into an accountant’s frown. You’ve locked $4,000,000 across two chains. That capital is idle: it isn’t earning staking rewards or lending yield; it’s sitting in drawers waiting for tourists. The right scorecard for cross-chain arb is therefore not profit per trade. It’s return on capital (ROC): net profit per period divided by the capital you tied up to earn it.
Before you read — take a guess
Which metric honestly captures whether a cross-chain arb is worth running?
Definition / formula. Return on capital over a period:
And the opportunity cost is the yield that same capital would earn elsewhere (staking/lending) — the benchmark your arb must beat.
Worked example. One cycle: ~10 trades, each $200,000 at ~0.7% net edge (our clean post-fee, post-drift assumption from the prior lessons):
So $14,000 per cycle on $4,000,000 locked — a per-cycle ROC of . Now annualize and benchmark. Suppose a cycle (drain + rebalance + redeploy) takes about a day; very roughly 250 trading cycles a year gives:
That looks fantastic — but it assumes a fresh, full cycle every day with no idle gaps and rebalancing already netted out. Thin the gap, add downtime, rebalance more often, and that number falls fast. The discipline is: compare whatever you actually clear against simply lending the $4,000,000 at, say, 5% ($200,000/yr risk-light). If your honest, rebalancing-and-downtime-adjusted arb nets less than $200,000 a year, you’d have been richer — and calmer — just lending the capital.
Match each quantity to what it measures.
Pick a term, then click its definition.
A headline-positive arb that loses to a savings rate
This is the punchline of the whole lesson. A strategy can show a positive number on every single trade and still be the wrong use of capital — because $4,000,000 lent at 5% yields $200,000/yr for almost no work, while your arb, after rebalancing and idle-time drag, might clear less. Cross-chain arb is capital-intensive — the polar opposite of capital-light atomic arb, where a flash loan meant your own ROC denominator was nearly zero. Here the denominator is the strategy.
Why does atomic arb dodge all of this?
Because the flash loan makes the capital-locked denominator nearly zero. You borrow, trade, and repay atomically — almost no inventory pre-positioned, no drain, no rebalancing, no idle drag. ROC explodes because you risked almost no capital of your own. Cross-chain arb can’t borrow across the gap, so the capital is real, idle, and the dominant cost. Same arbitrage idea, completely different economics.
When it matters
ROC matters at the only moment that counts: deciding whether to run the strategy at all, and at what size. A backer doesn’t care that each trade was green; they care whether their $4,000,000 beat the boring alternative. Lead with ROC, net of rebalancing and downtime — and be honest about the cycles you’ll actually complete, not the ones you could in a frictionless dream.
Recap
Big picture
Inventory & rebalancing
- Inventory & rebalancing
- Pre-position both sides
- No cross-chain flash loan
- Hold buy-side & sell-side on each chain
- Capital is yours, idle, exposed
- Same-direction drain
- One-way flow empties one side
- Inventory is a finite stock, not a faucet
- Capacity = inventory
- Trades/cycle = inventory ÷ trade size
- Gap width sets profit, not count
- Cross-chain analogue of AMM-depth ceiling
- Rebalancing cost & time
- Bridge fee + finality downtime
- Amortize fee across trades unlocked
- Frequent rebalancing rivals the edge
- Capital drag / ROC
- ROC = net profit ÷ capital locked
- Opportunity cost vs. lending the capital
- Capital-intensive, unlike atomic arb
- Pre-position both sides
Inventory & rebalancing — mixed recap
Why can't cross-chain arb use a flash loan to avoid pre-positioning inventory?
Check your answer to continue.