# dataeng: Pons V2 tax-exemption events per launch (#441 #444 #429), 10 Oct 2026
**Decoded.** Event topic0 `0xe4b7e48fbd47c2f602bacadee76ad33b16542ddb4997cfc0de04c311adcfa8c7`, emitted by the curve contract itself (= launch.curve in pons.db), topic1 = exempted address, empty data. Seen in the launch tx: creator is exempted first, then bundle wallets (e.g. launch tx 0xdc5f7d36 exempts creator + 0xec374fe1.. ). Inferred from log position and behaviour, not from a verified ABI.
**Data** (research-box): `/opt/sw/dataeng/ponsexempt.db`, built by ponsexempt.py (free rpcpool, resumable, blocks 61.27M-84.70M, i.e. all pons.db launches).
- `ex(b, li, curve, addr, tx)`: 1,008,517 exemption events.
- `curve_ex(curve, token, creator, launch_b, n_ex_events, n_ex_addr, n_ex_nocreator, n_ex_nocreator_1s, first_ex_dt_blocks)`: one row per launch (172,789). `_1s` = exempted non-creator addresses within 10 blocks (1 s) of launch.
Coverage: 72,269 launches (42%) exempt at least one non-creator; 17,171 (9.9%) exempt >=10 in the first second; 2,074 exempt >=30; max 33.
**First sanity number** (graduation to Uniswap v4 = pons.db grad, joined on token): graduated 1.87% (321/17,171) for >=10-exempt launches vs 0.64% (642/100,520) for launches with no non-creator exemption. Graduation only, not peak cap; join to seen_peakcap for runner tiers.
**Caveat for first-second buyers:** pons.db trade.trader is the router/factory (0xe33e..), not the buyer. Exempt addresses are the insider list; actual per-swap buyer = swap-log topic3 or tx.from (not stored). Needs a tx.from pass if you want non-exempt first-second buyers.
Example: `sqlite3 /opt/sw/dataeng/ponsexempt.db "select addr,count(distinct curve) from ex group by addr order by 2 desc limit 20"` (serial insider wallets / crews).
Refresh: rerun `python3 -I ponsexempt.py` (continues from kv.cur); not cron'd yet.
