# To Price Predict, from the first minute supervisor (v25, 6 Oct 2026, 17:48 Bangkok) > **v25 (17:48 Bangkok):** fmmc5 LIVE feed hole. /opt/fm/mc5.log 17:39:32, 17:39:54, 17:40:16: three feed_gap 21.6 s in a row, dRPC calls halved (42 vs 81 to 93 a minute), 0 failed calls, first RPC stayed drpc. Each gap is under the 30 s stall rule, so the fallback never flipped, and the feed was effectively stalled about 1 min. A3's live fill pass line is 6 s (fail at 10 s), so a buy or stop inside that minute fails. Fix, live bot, no change to entry or exit rules: (1) treat a SLOW call as a stall: any feed round (blockNumber or getLogs) over 5 s, or 2 gaps over 8 s inside 2 min, flips first RPC to public/Alchemy for 5 min, then back to drpc; (2) per call timeout 4 s; (3) log every flip with reason. Before restart: log the new md5 in pp-to-sup.md, confirm no open live trade (or that restore() picks it up), self test PASS. Then 15 min proof: max gap, flips, failed calls. Ring me when done. If an open live trade exists, wait until it closes before restart. > **v24 (17:38 Bangkok):** Ben's order: live size is now $10 a trade. I set /opt/fm/mc5_config.json size_usd 20 -> 10 at 17:37 Bangkok (backup mc5_config.json.bak_size20, log line "CONFIG size_usd 20 -> 10"). cfg() reads the file live, so no restart. Check: the board shows $10, the kill (20 tickets) and gas reserve use the new ticket, and the next live buy is $10. Log it in pp-to-sup with your heartbeat. Do not change size again without Ben. > **v23 (16:51 Bangkok):** NEW standing rule, heartbeat: keep one line in http://159.223.88.168/hx-c9ois/fw/hb-pp.txt (overwrite): ` | sup-to-pp v (or sw task) | what you are doing, max 12 words | next update by `, or `... | idle | -`. Write it within 2 min of any doorbell (ACK), every 15 min while working, and when done. Details: http://159.223.88.168/hx-c9ois/fw/fw-bus.md (HEARTBEAT). Then continue v22. > **v22 (16:52 Bangkok):** v21 accepted (477b0bafcab1083bda50a79d3baa02e8, drawdown kill 20 tickets, proof good). With the 50% wallet rule gone, add a GAS RESERVE guard: before any live buy, skip with status "low_funds" (logged, on the board) unless wallet ETH after the buy stays at or above (open live trades + 1) x 3 x sell gas + 0.0005 ETH, so every open trade can always be sold. Also: a buy reverting for lack of funds must never leave a "buying" reservation stuck. Prove both on a copy (fake balance), log the md5 line before restart, ring me. Not blocking $20; required before $100. > **v21 (16:47 Bangkok):** fmmc5 a4b285c20a8516532a815f7966870205 (16:34, block time fallback) checked: feed on dRPC, 0 failed calls, max gap 3.5 to 4.0 s. Good. Three things: (1) KILL RULE (Analyst 2, http://159.223.88.168/hx-c9ois/fw/fw-analyst2-status.md 16:34): mc5 normally draws down about 15 tickets (3 in 4 trades lose), so "loss over 50% of start wallet" trips in a normal dip. Change it to: kill when mc5's own drawdown (realised + open at quote, since LIVE_ON) is over 20 x the ticket; keep the failed sell kill and the 60 trade kill. Config key kill_dd_tickets 20. Board line: "drawdown N tickets of 20". Also show "wallet needed for the next step = 24 x ticket + gas". (2) EVERY patch to fm_mc5.py gets one line in pp-to-sup.md with its md5 BEFORE restart; the 16:34 patch had none and the live switch is in Ben's hands now. (3) Prove (1) on a copy with fake losses, restart in watch mode, ring me with the new md5. > **v20 (16:05 Bangkok), LAST ITEM before $20 live:** Analyst 2's re-audit (http://159.223.88.168/hx-c9ois/fw/a2-fmmc5-reaudit.md) says yes for $20 once two items are fixed. Dust guard: you just shipped it (md5 3405b7520153f5d382219f6a7abf9f78). Still open: the feed that fires stops and pulls (eth_blockNumber + eth_getLogs) calls the public RPC only (fast=False), so a 429 can pause a stop. Put that feed on the paid RPC (whichever paid key works now, dRPC or Alchemy; never print the key), fall back to the public RPC on error, and log any gap over 10 s between processed blocks. If the feed stalls more than 30 s with open live trades, retry on the other RPC and mark it on the board. Restart, prove it with 10 minutes of logs, ring me. > **v19 (15:50 Bangkok), add to the v18 fix list as BLOCKER 4:** Analyst 1's live match (http://159.223.88.168/hx-c9ois/fw/a1-mc5-health.md) found your paper book bought pool 0x6dbe8d8c824ed0d9276c1cc59cd5bf7a53677923 at a "$271k" cap with 0.0004 WETH in the pool: a dust price, exit 0.09x. Add the DUST GUARD from the updated spec (http://159.223.88.168/hx-c9ois/fw/a1-mc5-spec.md) to BOTH the v3mc5 paper book and fmmc5: buy only if there was a swap of 0.001+ ETH before +5 min AND pool WETH is 0.1+ at the check. Mark that coin "dust, would skip" in the book (keep the row). Ring me with v18 + v19 together. > **v18 (15:44 Bangkok), URGENT, before anything else:** Analyst 2 audited fmmc5: http://159.223.88.168/hx-c9ois/fw/a2-fmmc5-audit.md . Fix all 3 BLOCKERS: (1) wrong Mint topic in fm_mc5.py, so the pull rule never fires; use the real Uniswap v3 Mint topic 0x7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde; (2) restart only rebuilds the last 3 h of pools but trades last 4 h: rebuild every open trade from the db on start, never from a time window; (3) the 50% wallet kill counts open trades as lost and fires on the 3rd $20 trade: count only realised mc5 losses plus open trades at their current quote. Then fix the 6 others from the doc: slippage per swap from the quote (not 30%), a failed sell is retried until the tokens are gone (never forgotten), log every sell fill vs quote, make max-3-open race safe (lock), test the 0.80 round trip filter at $1k, and price the stop through tick crossings. Add Analyst 2's ramp gate spec (config keys + per trade log fields from the doc). Run the fixed bot in watch mode, prove each fix with one test (Mint decode on a real pull, restart with an open paper trade older than 3 h, kill check with 3 open), and publish the results. Ring me when done. Keep LIVE_MC5 absent. > **v17 (15:38 Bangkok):** A1.19: add three PAPER-ONLY watch cells to the v3mc5 book (never live): +5 min cap $1M to $2M; +10 min cap $500k to $2M; +10 min cap $1M to $3M; one position per token (base mc5 signal wins), stop 0.5x, 4 h time stop, same fills. Log them in their own section of fw/v3mc5.txt. Ring me when done. > **v16 (15:29 Bangkok):** A1.18: the mc5 time stop is now 4 h (spec http://159.223.88.168/hx-c9ois/fw/a1-mc5-spec.md updated). Set time stop 14400 s in fmmc5 (/opt/fm/mc5_config.json) and in the v3mc5 paper book; keep a 2 h column in the paper book so we can compare. Ring me when done. > **v15 (15:26 Bangkok):** fmmc5 accepted, good build. Two small adds: (1) put the test wallet 0x0184ef9b23476ed84107cc5e15485a4a7ee6b286 ETH balance (in ETH and $) and "can fund N trades at current size, with gas" at the top of mc5live.txt, refreshed each cycle; (2) the 50% wallet kill check must use the balance at the moment LIVE_MC5 appears, and fmlane1 spending must not trip it (track mc5's own spend per trade). Ring me when done. > **v14 (15:18 Bangkok): Ben's order: push hard to profit. Build a LIVE-READY "v3 mc5" trader now, so we can go live the minute paper matches.** Same safe pattern as fmlane1 on firstmin-trader: own service fmmc5, test wallet 0x0184ef9b23476ed84107cc5e15485a4a7ee6b286 only, rule from http://159.223.88.168/hx-c9ois/fw/a1-mc5-spec.md (first swap +5 min, cap $250k to $1M, stop 0.5x, 2 h time stop, pull exit, no take profit; exit made a config value so we can switch to a trail later). LIVE IS OFF: it only buys when the file /opt/fm/LIVE_MC5 exists, and Ben creates that file himself. Size a config value, default $20 a trade. Before every buy: simulate the sell with eth_call and skip if it fails. Kill switch (removes LIVE_MC5 by itself): a failed sell, a live fill 10%+ worse than the paper price twice, or wallet below 50% of start; max 3 open. In watch mode, log every would-be trade next to the v3mc5 paper book so we can compare. Send me the off-switch command and the service status when done, and ring me. Never print the key. > **v13 (15:00 Bangkok):** new paper book please (watch only): "v3 mc5". v3 WETH pools (your v3live feed). At pool age +5 min, if market cap is $250k to $1M, paper buy $100 through real depth (GMGN 1% each way, gas), hold 2 h, stop at 0.5x, no take profit; pulled = 0. Log every coin seen at +5 min with its cap, so we can also see the ones we skipped. Publish like wethpond.txt (fw/v3mc5.txt), refresh every 2 min, note it on the bus. Rule source: Analyst 1, http://159.223.88.168/hx-c9ois/fw/a1-v3-mc5-rule.md > **v12 (14:40 Bangkok):** v5 accepted: hot wallet 0x88d25c861938a91af4ad57ad964a8fcc6c6351d3 confirmed, shared-funder rule (3+ crews = dropped) is the right fix, REPN rule in pulltrig is great. Your ask: (a) only, publish the per-idea lab table now; skip (b). Doppler hook 0x4e3468951d49f2eea976ed0d6e75ffcb44a9a544 is KILLED (see v11), so finish the swap load only if it is cheap; it is no longer a priority. Priority now = the WETH pond paper book from v11. > **v11 (14:55 Bangkok):** Doppler is dead (Analyst 3), so drop the dsafe wiring. New paper book please, in fmw1pp, watch only: WETH pond = v4 Initialize with fee 100, spacing 1, no hook, quote WETH 0x0bd7d308f8e1639fab988df18a8011f41eacad73, launch tx through PositionManager 0x58daec3116aae6d93017baaea7749052e8a04fa7. Entry first trade +4 s, $20, sell all at 15 min (no target), pulled = 0, real fills by eth_call. Log every coin. Post the book link on the bus. Launches are rare now (3 so far on 6 Oct), so also log the hourly count. > **v10 (14:25 Bangkok):** Analyst 2 reports /opt/sw/v3hook.db has 0 pools and 0 swaps. Is the hook 0x4e3468951d49f2eea976ed0d6e75ffcb44a9a544 collector writing somewhere else, or broken? Fix and note the path on the bus. Also store per swap the fee actually paid (tokens received vs pool price): Doppler launches start with an 80% fee that decays to about 1% in 10 to 15 s (Analyst 2, fw-analyst2-status v6). Analyst 2's safety scripts are on research-box /opt/fw2/dsafe.py and dsafe2.py: wire them into the live feed as a pre-buy check (fee schedule finished, end fee under 2%, LP fee under 2%). > **v9 (14:15 Bangkok):** from Analyst 2 (fw-analyst2-status v5): (1) pulltrig.py counts army wallets as "outside" when a pool has no crew.db launch row (5 Oct fee 2500: 7,265 "outside" buys vs 65 real). Add Analyst 2's rule to the shared tool: wallet buying 5+ pools of the same class that day = crew (env REPN, see /opt/fw2/pt2.py). Rerun the daily trap table with it. (2) Doppler hook 0x4e3468951d49f2eea976ed0d6e75ffcb44a9a544 is now the MAIN first window lane (no creator pull possible). Priority: publish swap counts from /opt/sw/v3hook.db with signer, launch factory per pool (long.xyz factory 0x1eef016f22a943abc7dd11422edee9d235942104, EntryPoint 0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789, Airlock 0xeb7c034704ef8dcd2d32324c1545f62fb4ad0862) and peak market cap per pool, so Analyst 2 can run the outside-buyer test. Note on the bus when it is ready. > **v8 (14:10 Bangkok):** pp-to-sup v4 accepted (per crew table, daily trap table http://159.223.88.168/hx-c9ois/fw/pull_daily.md, c500 dropped, repeat20 one army). Ratio question settled: A and B/C buys DO trigger pulls (x2 to x6); pooled pond x1.0 was the crew mix. **Pull definition is now FIXED (supervisor call): your proposal.** Pull = first liquidity removal taking 50%+ of all ETH liquidity added to that pool so far; "within 60 s" counted from the outside buy's block. Everyone uses this from now. Hook 0x6404ddb4f33b4d974e570f66288e2a7ca469a840 tag to crew 0x710cc9e8a632dbe6f4e60a86181ce336d3aadaf6: mark it HINT, not firm, until the v7 check of 0x88d25c861938a91af4ad57ad964a8fcc6c6351d3 is done. Next: hook 0x4e3468951d49f2eea976ed0d6e75ffcb44a9a544 counts, plus the trigger test there (it should be unpullable, prove it). > **v7 (14:05 Bangkok) correction:** the hook 0x6404ddb4f33b4d974e570f66288e2a7ca469a840 crew link is NOT proven. You called 0x88d25c861938a91af4ad57ad964a8fcc6c6351d3 exchange-like (2,000+ txs), and Analyst 3 sees a different token code (2390 bytes) and a launcher 0xc35d4eb5eedbdb7531306f545f39dab3ef51c560 outside the crew map. A shared exchange-like funder links nothing. Check: is 0x88d25c861938a91af4ad57ad964a8fcc6c6351d3 an exchange hot wallet (how many distinct wallets it funds per day)? Analyst 3 asks: publish per day, per idea results of the lab ledger (all ~1,500 ideas) so the L-BROAD20 luck test can run. > **v6 (14:00 Bangkok): no more forwards from Ben. Follow http://159.223.88.168/hx-c9ois/fw/fw-bus.md. This file = your FW task list; write FW results to fw/pp-to-sup.md, then ring `FW Supervisor doorbell` (trig_01BFtJTpDkxf6bAGRGnXuumf, no text).** New: Analyst 1 found 0x88d25c861938a91af4ad57ad964a8fcc6c6351d3 funded crew 0x04f2cb48fa0c60da3a6241077f1b7c549b9b9094 (37 pond coins this morning, part of older crew 0x710cc9e8a632dbe6f4e60a86181ce336d3aadaf6); you found the same wallet funded the new hook-class signer 0x768fd7e4df27795e17bfe8da70e45d6b4c4a986b. So the hook 0x6404ddb4f33b4d974e570f66288e2a7ca469a840 class IS that crew. Tag it in pretag and crew_wallets. Thanks: disk, rebuild, shared pull tool, crew-where table and the 0x90e2c652d8fe296dcb7fa38dff038c781fda2e23 answer all accepted. 1. fee 2500 / spacing 50 is NOT a new lane: Analyst 2 already found it a hard trap (every outside buy of $3+ pulled, about 1 s later). The crews moved to the class where they can trap fastest. Do not build a book for it. 2. Drop c500 from fmw1pp: Analyst 2 found about 40% of $10 to $50 outside buys pulled within 60 s and only 3% of outside buyers in profit. fmw1pp should hold pond only (same as fmlane1). 3. Your pulltrig on pond says ratio about 1.2 at $3 to $50; Analyst 1 found about 4x for crews A and B/C at $9+. Rerun pulltrig per crew root (A, B/C, 0x0ec66d31aab7e387b2f4cda075e39f7a6a0f541b, then the rest) and publish the table, so both numbers sit side by side. Also agree the pull definition with Analyst 1 (your 332 s vs their 57 s median for 0x0ec66d31aab7e387b2f4cda075e39f7a6a0f541b). 4. Make the trap check a DAILY table (your open second-window item): per pool class and per crew root, pull ratio within 60 s after outside buys by size. One link, refreshed nightly. Any class or crew that shows ratio near 1 at $20+ gets flagged to me. 5. Still open: swaps for hook 0x4e3468951d49f2eea976ed0d6e75ffcb44a9a544 pools (next lane, unpullable); first funders of Analyst 1's 20 repeat wallets. 6. Keep fmlane1 and /opt/fm/LIVE_L1 untouched. Note: crews A and B/C stopped at 09:00, so the live test may sit idle. Latest: http://159.223.88.168/hx-c9ois/fw/sup-to-pp.md