arbx — Cross-Venue Arbitrage

arbx — Cross-Venue Arbitrage An architecture diagram generated by Archify. Kalshi public API · REST + WS, read-only · Architecture component Kalshi public API REST + WS, read-only Polymarket public API · CLOB book + Gamma · Architecture component Polymarket public API CLOB book + Gamma StreamingSource · paired books · skew_ms · local host — paper-only, no order path, no database tier › public GETs only — no order-mutation endpoint is constructed StreamingSource paired books · skew_ms ArbScanner · round-robin batched ticks · local host — paper-only, no order path, no database tier › public GETs only — no order-mutation endpoint is constructed ArbScanner round-robin batched ticks FeeEngine · per-venue, worst-case · local host — paper-only, no order path, no database tier FeeEngine per-venue, worst-case Edge analysis + EV · depth, survival, executable · local host — paper-only, no order path, no database tier Edge analysis + EV depth, survival, executable arbx-ui launcher · ./run · composition root · local host — paper-only, no order path, no database tier arbx-ui launcher ./run · composition root Pair registry · equivalence · sha256 pinned · local host — paper-only, no order path, no database tier Pair registry equivalence · sha256 pinned Mode gates + kill switch · deny by default · no un-engage · local host — paper-only, no order path, no database tier Mode gates + kill switch deny by default · no un-engage Service layer · protocol seam + envelope · local host — paper-only, no order path, no database tier Service layer protocol seam + envelope NDJSON store · book · edge · soaks · latency · local host — paper-only, no order path, no database tier NDJSON store book · edge · soaks · latency Research cockpit · 5 tabs · 127.0.0.1:8710 · local host — paper-only, no order path, no database tier Research cockpit 5 tabs · 127.0.0.1:8710 books books paired cross net edges specs gates reads results wires local host — paper-only, no order path, no database tier public GETs only — no order-mutation endpoint is constructed

The finding

  • • No capturable Kalshi/Polymarket arbitrage under the conditions tested
  • • An early run looked profitable until a bid/ask normalization bug was traced
  • • Once fixed, the opportunity disappeared — that correction is the result
  • • 23 pairs scannable, 0 counting toward strategy metrics, enforced by the loader

What makes the no trustworthy

  • • Settlement equivalence prescreens can only flag, never clear — default needs_human
  • • Real per-venue fees; an unknown market resolves worst-case, never zero
  • • Books captured further apart than max_skew_ms are discarded, not penalized
  • • Displayed edge is depth-adjusted before any capturable claim is made

Safety and omissions

  • • Real orders need three independent gates; missing any one denies
  • • The kill switch has no un-engage method anywhere — clearing is a manual rm
  • • Public research subset: no execution layer, no database tier, no live-order path
  • • The equivalence LLM audit is an operator step; no model client exists in the repo