Cross-Exchange Arbitrage
Detect and execute spread arbitrage between exchanges — admin-gated, dry-run by default.
What it detects
The arbitrage scanner watches the same asset across all connected exchanges and flags spread opportunities larger than the round-trip cost (fees + slippage + transfer).
Detection runs continuously on cron and writes to arb_opportunities. Opportunities are ranked by net spread (after taker fees on both legs). Top-of-book scan covers BTC / ETH / SOL / BNB / XRP across Bybit, OKX, Binance, Bitget, HTX (extensible).
Execution gating
Execution is fully wired and admin-controlled with two flags:
arb_execution_enabled— master switch (default off)arb_dry_run— when on, "Execute top" logs a row toarb_executionswithout placing real orders. Required for the first 28 days of telemetry.
Live execution remains Institutional-tier + per-account credential gated. We never auto-fire arbitrage from a shared key.
Why dry-run first?
Before flipping arb_dry_run off, we collect ≥4 weeks of telemetry confirming:
- Round-trip economics are positive after all real-world costs
- No exchange has consistently bad fills that erode the edge
- Withdrawal / transfer windows match the opportunity half-life
- Risk on a stuck transfer is bounded by exchange counterparty exposure