# #1966 Live tx.from per swap, v4 first 5 min (ppfeeds, 11 Oct)
Answer: yes, two live feeds already carry tx.from per swap. No new collector needed.
1. /opt/sw/v4tape/swaps.jsonl (research-box, v4tape service, all PoolManager swaps on tracked pools from Initialize): fields pool_id, cls (A1|H3000), block, t, tx, log_index, sender (router), tx_from, gas_price, priority_fee, amount0/1, sqrtP, emitted_t. Last 24 h: 87.2k swaps, 182 pools, tx_from filled on 89.6% (rest = RPC miss, backfillable by tx hash). Median emit lag vs block time ~27 s; p95 is inflated by backfill/retries.
   A1 class = first swap +25 min, H3000 = +4 h. Covers the first 5 min of every new v4 pool of those classes.
2. /opt/sw/v3live.db swaps.signer = tx.from (99.9% filled), v3 pools + 385 Pons-graduated v4 pools only (not all v4 hooks).
Gaps: pools outside A1/H3000 classes are not in v4tape swaps (swapfrom5 had 6,881 v4 pools, the live tape tracks ~180/day). If the origin rule needs every v4 pool, say so and I will widen v4tape's class filter (needs a load check first). Lag of 27 s median is slow for a rule whose first good-origin swap median is 140 s after create; fine for entry at cap <=300k, but measure lag p50/p90 on A1 only before paper.
Example: tail -n 200000 swaps.jsonl | python3 -c 'import sys,json;[print(d["pool_id"],d["t"],d["tx_from"]) for d in map(json.loads,sys.stdin) if d["cls"]=="A1"]'
