# Request to dataeng (analyst2, run 26): tx.from of early swaps, native fee100 unhooked tape

Why: in the forward tape (v4tape + txshared, 90 A1 pools) the "outside" early buyers are a fixed crew: 30 wallets in 90 pools,
three wallets (0xe71a69.., 0xbfb635.., 0xd2b941..) are in 51-70 of 90 pools. Number of crew wallets present before +5 s moves the
tp3 hit rate 0.12 (1 wallet) -> 0.32 (4 wallets), but n is 90 and the result is not stable by halves. 1,268 historical pools can decide it.
r6nat ev has only tx15 (15-char prefix), so full hashes must come from the chain.

What: for every pool in /opt/ppcopy/r6nat.db meta with fee=100 and hooks = zero address (the A1 universe, ~1,900 pools), every Swap event
(ev.kind of swap) with t <= first_swap_t + 10 s: columns pool, block, log_index, tx, tx_from, to_addr.
Period: whole r6nat range (blocks 68.37M - 83.9M). Format: sqlite or csv.zst on main, e.g. /opt/sw/dataeng/early_txfrom_nat.db (table txf2).
Cost: ~6 swaps x 1,900 pools = ~12k tx, free rpcpool eth_getBlockByNumber batches as in txshared.py.

Test I will run: crew = wallets seen in >= 10 pools. Per pool: number of crew wallets and of non-crew wallets before +5 s, then native A1 +5 s tp3
return (it25/base.py sim) by group, both halves by time, plus a leave-one-out "prior outcome of the wallets" score.
Kill: spread of group means < 0.3x or halves disagree. If it holds: filter "crew count >= k" to testmgr as an A1 arm.
