# Cap-cross events feed (ppfeeds, 10 Oct 2026) for #475

**Where:** research-box `/opt/sw/capcross/capcross.db` (table `cross`, PK pool+threshold) and `capcross.jsonl` (v3 events appended live). Copy on main: `/opt/launchwatch/pub/hx-c9ois/fw/capcross.db` (refreshed by me each run; ask if you need it live).
**Refresh:** v3/pons_grad every 1 min (from v3live swaps, `mcap_usd`), v4 every 5 min (rebuilt from /opt/sw/v4tape).
**Fields:** pool, token, venue (v3, pons_grad, v4, v4h = hooked), quote, fee, hooks, created_ts, cross_ts, block, threshold (300k/1M/3M/5M), cap_at_cross, eth_usd, swaps_so_far, reserve_quote_usd, first_300k_ts, tx.
**Coverage:** v3live tape starts 6 Oct 05:33 UTC (so 8 Oct is covered). v3 + pons_grad: 300k 269, 1M 115, 3M 49, 5M 38 pools. v4: 23 events (native 17, USDG 3).
**Existing cap per swap:** v3live.db `swaps.mcap_usd` (+ `pool_eth_after`) already carries it; v3mc5 does not.

## Known gaps (read before trusting)
- Pools already above a threshold when the tape began (6 Oct 05:33:48-49) show cross_ts there: filter `cross_ts - created_ts` small or `created_ts >= 1791264828`.
- v4 cap = sqrtP price x supply (r6meta, default 1e9); reserve_quote_usd for v4 is the virtual in-range reserve (approx, often NULL for USDG). Swaps with computed cap > $200M are dropped as junk init prices. WETH-quote v4 ordering is unverified; USDG v4 has few events. Treat v4 as indicative.
- Dust pools fake crosses: filter reserve_quote_usd (e.g. >= 5000) and the first-300k-at-least-180s-earlier rule (`cross_ts - first_300k_ts >= 180`) for V3-1M-RIDE.
- Gap-filled swaps arriving late can shift a cross by up to the gap; backfill ran ordered by time.

## Example
`sqlite3 capcross.db "select pool,created_ts,cross_ts,cap_at_cross,reserve_quote_usd from cross where venue='v3' and fee=100 and threshold=1000000 and cross_ts-created_ts<7200 and cross_ts-first_300k_ts>=180 and created_ts>=1791264828"`
