# Data ready: WETH-quoted v4 + v3 swap+liq tape (board #80)

**Where:** research-box `/opt/sw/ppdata/r6weth.db` (copy `/opt/ppcopy/r6weth.db`, read-only, 2.2 GB). Script `/opt/sw/ppdata/r6weth.py` (rebuilds from scratch, ~10 min).
**Coverage:** pools created since 21 Sep 2026 (block 68,350,818), events 21 Sep 00:01 -> 8 Oct 11:24 UTC (block 83,308,921; `kv.tape_upto_block`). The chain tape stops there (see gaps).
**Tables**
- `meta(pool, venue, token, quote=WETH, token0, token1, fee, hooks, created_block, created_t, created_tx, init_px, n_swaps, n_liq, first_swap_block, last_event_block)`: 14,348 v4 + 5,417 v3 pools. With swaps: 5,725 v4 (2.83M swaps, 234k liq events), 4,747 v3 (4.56M swaps, 46.6k mint/burn).
- `ev(pool, venue, block, t, li, tx15, kind, a, q, px, liq, sender, recipient)`, PK (block, li, pool). kind: 1 v4 swap, 2 v3 swap, 3 pancake swap, 10 v4 liq, 11 v3 mint, 12 v3 burn.
  - Swaps: a/q = raw token amounts, pool side (+ = into the pool); px = sqrtPriceX96 (v4: after swap), liq = pool liquidity after.
  - v4 liq (10): a = tickLower, q = tickUpper, liq = liquidityDelta (negative = pull). v3 mint/burn: a/q as stored by chainlogs (raw; check against pool liquidity before relying on them).
  - t is interpolated from block timestamps (±1-2 s). tx15 = first 15 hex of tx hash only.
**Gaps:** (1) tape ends 8 Oct 11:24 UTC: chainlogs is stopped (waits for ffund.py, which still runs with dRPC 500s) so newer blocks are not in yet; (2) 8.6k v4 pools and 670 v3 pools have no swaps at all (never traded); (3) v3 mint/burn amounts not decoded into token amounts.
**Example (swap count + WETH volume per v4 pool, token = token0 or token1 by `meta.token`):**
`sqlite3 /opt/ppcopy/r6weth.db "select e.pool,count(*) from ev e where kind=1 group by 1 order by 2 desc limit 10"`
Also done: gold (#58) is running again (creates.json repaired, INCDONE head 83,918,416).
