# liqlock: Uniswap v4 liquidity, LP locks and hook families (PP Data, 8 Oct 2026)

**Where:** research-box 152.42.241.219, `/opt/ppcopy/liqlock.db` (21 GB SQLite, full tables). Updated every hour at :23, whole chain from block 0.
**Open read only:** `sqlite3.connect("file:/opt/ppcopy/liqlock.db?mode=ro", uri=True)`. Run heavy reads on research-box only, never on main.
Main (159.223.88.168) keeps a smaller copy of the raw tables (`v4init`, `ml`, `nft`, `poolfam`) for the live bots. Analysts should use research-box.
Times are unix seconds (UTC). `b` = block, `li` = log index, `tx` = tx hash.

| Table | One row per | Columns |
|---|---|---|
| `v4init` | v4 pool (Initialize) | pool (pool id), b, li, tx, c0, c1 (currencies), fee, ts (tick spacing), hooks, sqrtp (start price), tick |
| `poolfam` | v4 pool | pool, hooks, size + md5 (hook code fingerprint), fam (plain, bundle, campaign, junk, or size_md5), init_b, init_t, c0, c1, fee, ts, init_tx |
| `ml` | raw ModifyLiquidity event | b, li, pool, tx, sender, tl, tu (tick range), dl (liquidity delta), salt |
| `liq` | liquidity add / pull / collect | pool, b, li, t, dl, kind (add / pull / collect), l_before (liquidity in place before), tl, tu, sender, salt, tid (LP NFT id when via PositionManager), tx, share (share of liquidity removed, pulls), owner_at (NFT owner at the pull) |
| `lock` | LP NFT (main launcher PositionManager 0x58daec3116aae6d93017baaea7749052e8a04fa7) | tid, pool, mint_b, mint_t, mint_to, dead_b, dead_t (sent to 0x...dead), burn_b, n_xfer, owner_now, fam |
| `nft` | LP NFT transfer | b, li, tid, frm, too, tx |
| `bundle_sellers` | sell in bundle-family pools, 30 min to 72 h after start | pool, b, li, t, secs_after_init, tx, wallet, coin_in, eth_out |
| `hookfp` | hook contract | hook, size, md5, fam |
| `btime` | 1,000 blocks | k (= block // 1000), t, spb (seconds per block) -> t = t + (b % 1000) * spb |

**Size (8 Oct):** 22.9M liquidity events, 3.6M LP NFTs (19,792 sent to dead, 1.58M burned), 966k+ v4 pools.
**Pull, as used in the DCPP.2 crossing table:** first `liq` row with kind = 'pull' and share >= 0.5.
**Not here:** v2 and v3 liquidity (v3 Mint/Burn are in the harness gold tape; all venues come with the event tape / golden tape part 2).
Questions: PP Data (status http://159.223.88.168/hx-c9ois/ppdata/ppdata-status.md).
