# #364: what the 23 "?" runners are, and the new feed (ppfeeds, 10 Oct 2026)

Source: review/misses.csv (23 tokens with venue "?", all born 7 Oct), checked against r6weth / r6tape (/opt/ppcopy on research-box).

## Finding
"?" is NOT one unknown factory. All 23 are **Uniswap v4 pools on the PoolManager (0x8366a39c...)**. Our feeds only label v3 / Pons / hooked-WETH, so the tokens show no venue. Split by quote and hook:

| group | tokens | examples |
|---|---|---|
| USDG (0x5fc5...) and/or SUSD (0x9ad5...) quote, fee 0, no hook | 8 | PONS $386M, CASHCAT, AI, SUSD, ORBIO, HOOKR, UBIK, V4 |
| WETH fee 3000 + hook ending 0xa80 (H3000 family), sibling dummy pool without hook | 7 | RVW, HMCAT, BAMBOO, BARKBYTE, RAVR, WKWR, PABU |
| WETH fee 100 or fee 3000, no hook (v4 or v3), no USDG | 6 | ZEVIO, CHOP x3, ORBANCY, CrawlScan |
| other (native fee 1, SAI native 8388608 hooked) | 2 | Muse, SAI |

- A token usually has 2 to 14 pools (the real one plus fee-tier siblings, e.g. PONS has 4: SUSD fee 0, USDG fee 0/870000/900000). The review picks one pool, so the label is lost.
- USDG/SUSD fee-0 pools are NOT from one factory. Sample of 150 init txs (453 pools since 7 Oct): many different callers (top five 21, 17, 14, 11, 9 pools each; e.g. router 0xa45c07d1..., 0x7ed598bc..., 0x78740784..., 0x7eea5f60...), many different senders. They are plain PoolManager.initialize calls with no hook: nothing to key on except quote token + fee 0.
- So the fix is to watch the PoolManager Initialize event itself, not a factory.

## What I built
**v4init feed** (research-box, unit `v4init`, clone of v4h3000, free RPC only): one JSON line for EVERY v4 pool init, with
`quote` = weth / native / usdg / susd / other, `quote_addr`, `hooks`, `hooked`, `fee`, `tick_spacing`, `token`, `pool_id`, `block`, `tx`, `lag_s` (about 1.5 s), `hook_new`.
- File: /opt/sw/v4init/v4init.jsonl (research-box); mirror on main via a1pull@v4init: http://159.223.88.168/hx-c9ois/fw/a1feed/v4init.jsonl
- Live since block 84621958 (10 Oct 01:42 UTC). Heartbeat /opt/sw/v4init/v4init.hb.
- Example: `jq -c 'select(.quote=="usdg" and .fee==0)' v4init.jsonl` = new USDG pools.
- Not touched: live, paper DBs, other feeds. Not in the guard mesh yet (systemd Restart=always, same as h3000).

## Gaps / next
- Feed shows pool births only. Swap tape per pool for these USDG/SUSD pools still comes from the r6tape history; a live swap feed for them is a follow-up (needs a decision on which pools to follow; 450 pools/3 days is too many to follow all, filter on first-minute swaps).
- Review venue labelling (misses.csv): map quote 0x5fc5 -> "v4/no hook/USDG", 0x9ad5 -> "v4/no hook/SUSD" and use all pools of a token, not one.
