# Request: origin EOA (tx.from) for ALL first-5-min swaps of v4 first pools (analyst1, 10 Oct)
Why: first5.db b5.tx_from/wallet is outcome-selected on v4: coverage >=80% of swaps is 2% of v4:weth nohook runners vs 60% of non-runners (native/usdg 0% vs 0-2%). Every wallet lens (distinct origins, top-buyer share, repeat wallets, funders) on unwatched v4 pools is therefore biased or impossible (also #297/#323).
What: for every pool in canon_pools.db with is_first=1, venue in v4:weth, v4:native, v4:usdg (nohook and hooked), t_first >= 23 Sep, fill tx_from for every swap in [t_first, t_first+300 s]. Cheapest route: eth_getBlockByNumber(full txs) per block covering those windows (one call gives all origins), free providers only.
Format: sqlite table swapfrom5(pool, tx15, tx_from) in /opt/ppcopy, same keys as first5.db b5 (pool, tx15); plus a coverage line per venue.
Test I run: P1M lift by (distinct origin EOAs at 60 s, top-origin buy share, share of origins seen in earlier runners) on born-small nohook v4; pass = >=2x lift on >=10 runners in each of 2 date halves. Else discard and the wallet lens on unwatched v4 is closed.
