# Execution Engineer: X6, X7, X8, X5 (7 Oct)

## READ THIS FIRST
- **v1 (Execution Engineer, 7 Oct 14:35 Bangkok).**
- **X6 done:** http://159.223.88.168/hx-c9ois/sw/sw-live-trades.csv + http://159.223.88.168/hx-c9ois/sw/sw-live-trades.md , cron every 5 min on main (nice 19, read only, rebuilds only on change). 1 live round trip so far (CrawlScan, 0.195x, -$8.05).
- **X7: the biggest finding of the day. D-021 as written would slow every SW exit from about 0.5 s to about 10 s.** GMGN wallets can only be traded THROUGH GMGN (gmgn-cli; GMGN signs server side, our engine never holds that key). Our fast exit signs its own tx. On the one FW stop we can check, the GMGN path cost 0.16x of the position (below). **Recommendation: SW's "wallet 2" = the engine's own wallet 0x04a057D15bd07581DC88b0a37E41EB69Ceb8C2D3** (already separate, already ours, already on fastexit). That gives D-021 everything it wants (own P&L, own money, a bug cannot spend FW's money) with no speed loss. Ideally FW moves to an engine-signed wallet too at the switch.
- **X8:** org wide $200 cap holds on every paper case (7 PASS). 4 GAPS the merged engine must close before the switch (list below). Test: /opt/exec/test_x8.py on main.
- **X5:** 1 of 5 matched (decisions match). The x gap 0.49 vs 0.33 is 100% execution latency on the GMGN path, 0% decision. The merged engine on fastexit would have filled about 0.44 to 0.52 on that tape. For FW Analyst 2 (Supervisor, please route).

## X7: GMGN wallets (read only, no swap)
| Check | Result |
|---|---|
| Wallets bound to the current API key | ONE: 0x0184ef9b23476ed84107cc5e15485a4a7ee6b286 (EVM, all chains incl. robinhood) + Solana BQWBYyy7xhGmqBvE26B7y3WymARKgJAc7XGxwoeJxFNa. **No wallet 2 visible, so its address cannot be read with this key.** |
| GMGN trades on Robinhood 4663? | **Yes.** `order quote --chain robinhood` returns chain_id 4663, GMGN router 0x65050a9b7e5075a2ba5ced7b1b64ee66262c40dc, v3 route (0.0001 ETH to CHONK 0x717d38587504b79e2e888c860bd1569c0d5984af). |
| Can the key trade from wallet 2? | **No** (not bound). A quote works for ANY address (it does not check binding), so a quote cannot prove it; `swap` only signs for the bound wallet. |
| gmgn-cli speed from firstmin | quote alone 1.6 s and 3.0 s (node start + API). A swap adds GMGN signing + broadcast. |
| Balances now (ETH $2,620) | wallet 1 0x0184ef9b23476ed84107cc5e15485a4a7ee6b286: 0.1359 ETH (about $356). Engine wallet 0x04a057D15bd07581DC88b0a37E41EB69Ceb8C2D3: 0.0371 ETH + 0.0012 WETH (about $100). |
- **If Ben still wants a GMGN wallet 2 (Needs Ben):** gmgn.ai/ai > API key > Edit > Trading Wallets: tick the wallet 2 Robinhood (EVM) address, keep Trusted IP = 178.128.20.136 (and 159.223.88.168 until the switch), 2FA. Or create a 2nd key bound to wallet 2 (max 3 keys). Then `gmgn-cli portfolio info` shows it and I post the address.
- **Routing spec for the Coder (merged engine), recommended version:** every signal carries `desk` (FW or SW). FW desk -> wallet 1 route, SW desk -> engine wallet 0x04a057D15bd07581DC88b0a37E41EB69Ceb8C2D3 via fastexit. Before every buy: one ticket per coin across BOTH wallets (D-016 v2: if either wallet holds the token or has a buy in flight, skip, credit the desk that fired first). One loss cap summed over both wallets (D-017, $200 at $10). Kill or pause stops BOTH routes. If wallet 1 stays GMGN-signed, its exits keep the slow path: measure and say so on the scorecard.

## X5: shadow vs fm_mc5 live, pool 0x86303aff9563213a7c5f877bbe15eacde98d7c50
| Bangkok | Block | What | Cap / x |
|---|---|---|---|
| 13:25:14 | | both buy, entry cap $470k | |
| 13:31:04 | 82263835 | stop line crossed (cap $232k, 0.49x) | shadow exits here: **0.49x** |
| 13:31:06 | 82263847 | next sells | cap $205k (0.44x) |
| about 13:31:13 | | fm_mc5 trigger (SELL_SENT logged 13:31:16, "2.7 s after trigger") | trigger value 0.415x |
| 13:31:15 | 82263941 | fm_mc5 sell mined, tx 0x4d3c64a0ad37aaf89adfeec1f1c0b1ccdf93010e4f48a1f20b0d99181ab4b8cd | cap $132k, **0.33x** |
- Gap 0.16x: about 9 s from the cross to the trigger (detection), 2.7 s gmgn-cli, about 2 s to mined. Our size ($10) moved nothing. Quote 0.001432 ETH vs fill 0.001272 ETH (11% worse than its own quote).
- **Fill bar verdict (D-002 point 3):** decision MATCH. Live fill FAILS the stop slip bar (-0.085x vs the trigger, bar -0.05x). Shadow x is what fastexit can reach; fm_mc5 x is what the GMGN path reaches.
- Bars I grade every next pair on: same pool, same buy/skip, same exit reason (D-003 v3); buy within 6 s of the +5 min check; trigger to SELL_SENT 5 s or less; stop slip -0.05x or better.

## X8: kill switch test (paper, pure functions; /opt/exec/test_x8.py md5 42072e44c4b10084c6c1897924273786)
- PASS: SW -$100 + FW -$101 trips; exactly $200 does not; measured from the peak in time order across both wallets; SW open trades counted at a sale quote; limit = 20 x the larger ticket; per bot 10 ticket switch still there.
- **GAP 1:** FW OPEN trades count at cost (fwsync.combined has no FW mark): SW -$195 + a FW coin now worth $0 shows $195, no kill. Fix: pass FW open value (quote or last swap) into combined().
- **GAP 2:** D-018 drop one step on any kill is not in the code (no step_after_kill; day count restart).
- **GAP 3:** D-001 ladder $10, $50, $100, $200, $300 is not in ramp (RAMP_V2 = [100, 500, 1000]).
- **GAP 4:** a combined trip stops SW buys only; fm_mc5 kills on FW's own drawdown. Until the switch, FW can keep buying past $200 total. In the merged engine one kill flag must stop both wallet routes.
- Run: `cd /opt/w2coder && python3 /opt/exec/test_x8.py` (add `--strict` to fail on gaps once fixed).

cost: about 6 credits rough, API $0, 0.5 h.

Version: v1, 7 Oct 2026 14:35 Bangkok. Latest: http://159.223.88.168/hx-c9ois/sw/sw-exec-x5-x8.md
