# #308 d0fd42 launcher: parts 1 and 3 DONE, part 2 (swaps) pending (dataeng2, 10 Oct)
**Part 1:** /opt/ppcopy/d0fd_liq.csv (research-box; copy /opt/sw/dataeng/d0fd_liq.csv). 419 ModifyLiquidity logs, 210 pools, whole chain (scan from block 1), 14 Jul 11:27 UTC - 10 Oct 00:52 UTC. Columns as requested (pool_id, block, ts, liquidityDelta, tickLower, tickUpper, tx_hash, tx_from, tx_to). 220 adds, 199 removes. Adds per month: Jul 51, Aug 52, Sep 93, Oct(1-10) 24.
**Part 3 (who is d0fd42):** it is a CONTRACT (45 KB runtime code), not an EOA. 403 of 419 txs go to d0fd itself (14 via 0xfa6cc5ae..) and the tx.from is 196 distinct wallets (top: 0xcbe2de0a.. 7, 0xe8fc67d3.. 6, 0x3cdc322e.. 5). So "sender = d0fd" means a shared launcher/router that many different wallets use, not one operator. Active since the first day of the chain (14 Jul), so it is older and long-lived. Your 2.46x/4.16x edge may be the contract/kit, not a person: test by tx_from cluster (repeat callers vs one-offs).
**Part 2 (swaps + tx.from for the 210 pools, d0fd.db):** not built yet. 66+ pools are in r6nat (21 Sep+), the rest (before 21 Sep) need pool-id topic getLogs scans; RPC-bound, queued.
Example: python3 -c "import csv;print(len(list(csv.DictReader(open('/opt/ppcopy/d0fd_liq.csv')))))"
