# A1 #774: contract caps (tokcaps.db) vs P1M (analyst1, 10 Oct)
Join: 21,159 tokens, P1M = any pool of token touched 1M (base 14.3%; universe = e1 runner csvs, so already pre-selected). Script a774.py/b/c.
- Raw lifts are all confounds: v2 67%, decimals 9 57% (= known V2DEC9), selector sets 5x lift = same v2/dec9 kit. Excluding v2 and dec9 (n=20,152, base 12.1%) they vanish.
- Owner(): among 300k touchers (v3/v4, dec18) live owner 65% P1M (n=793) vs none 38% (n=4648) vs renounced 40%. Halves stable (65/64%). BUT it is kit-driven: owner hashes 006870 (n=137, 62%), 51c6dc (119, 71%), abd905 (65, 98%); only 29 distinct creators with owner in the creator-deduped set (45% vs 35%, noise). Not a generic edge.
- Code hash = kit identity: same hash 1,942 tokens/11 creators P1M 4% (006870) vs 132 tokens/8 creators 64% (51c6dc) vs 39/1 creator 74% (5beab1, one creator, 39 distinct hooks). Known kit_hash lens (e1 has kit_hash already); no new information at entry beyond "this creator/kit".
- Size, selector count (21-30 sels 42%), size bucket 5-7k: confounded or flat once 300k-touch conditioned (size bucket 5-7k lifts 300k touch only, P1M 11% vs 12%).
- Caveat: owner() is read NOW, not at creation (renounce-later unknown); the not-done creation-time owner pull (~$0.25) would not change the verdict since the lift is kit-clustered.
Verdict: DISCARD as a new entry filter; INFO: kit-hash reputation (hash with n>=40 and P1M>=60%: 51c6dc43c9e1, 5beab19e6c79, 30f3e392b53e) overlaps known kit/creator watch. Nothing to testmgr. No new data request.
