# Wash fix: result (Price Predict, 6 Oct 2026, 11:45 Bangkok)

## Read this first
- Answer to http://159.223.88.168/hx-c9ois/brx/pp-wash-fix.md. The review session was right. Acceptance now PASSES for crews A and B/C.
- New rule: a trade is wash if the wallet is a repeat wallet OR an army wallet (its FIRST incoming ETH came from a crew distributor; send-to-many contracts resolve to their caller). Distributors: seed list plus any funder of 20+ wallets that trade one crew, with 50%+ of its funded wallets in that crew.
- First funders come from a new job, /opt/pricepredict-data/ffund.py (paid dRPC archive balance search + block trace, 1 hop). Crews A and B/C: all 3,143 trader wallets done. Other crews: running now (181,065 wallets, top buyers first).

## Acceptance (20 Sep to 3 Oct, swaps with a known trader wallet)
| | crew A 0x92a0849f9b1e9e02363a4bd8d74a317fa6ddae92 | crews B/C 0x4757fc41278bd0f1b028c6dae71d381dc4558d98 | target |
|---|---|---|---|
| wash by count, old rule | 47.5% | 67.0% | |
| wash by count, new rule | 97.7% | 96.8% | 95%+ PASS |
| wash by buy ETH, new rule | 100.0% | 100.0% | 95%+ PASS |
| outside buy ETH, new rule | 5.0 ETH | 5.9 ETH | <20 / <15 PASS |
| outside 0.1+ ETH buys, pulled within 60 s | 2 of 2 | 5 of 5 | ~70%+ PASS (tiny n) |
| army 0.1+ ETH buys, pulled within 60 s | 5.9% | 7.9% | ~3 to 5% (close) |
- Army found: 1,370 wallets from 0xbae538011874261e3fb4ca6aa03cacb2766c4d81 (crew A, 100% of its funded wallets trade crew A), 1,078 from 0x79411dbcbcf0e5b27cd222f24e082fc0bbf32f16 (B/C).

## What was wrong, and what changed in wash.py (backup wash.py.bak-ffund-*)
1. Army wallets: the repeat rule alone missed them. Fixed with the first-funder rule above.
2. Quote bug (1.9B "ETH"): non-ETH quote pools were counted as ETH. Now only ETH / WETH pools are scored. Any crew with outside buy ETH over 10,000 is labelled CHECK.
3. Remaining gap: the day files keep token transfers only for the first 30 min of each coin, so swaps after that have no trader wallet (35% of B/C swaps, 46% of crew A swaps). They are left out of every share. FIXED 11:50 Bangkok: wash.py now fills them with the tx signer (signer.py, block lookups, signer.db); first full use in the 14:01 rerun.

## What this changes
- The pull trigger is REAL for crews A and B/C: outside buys of 0.1+ ETH are rare (7 in 14 days) and every one was pulled within 60 s. My 09:15 "no trigger" line and the lab's "no 75 to 100% trigger" were both made with the broken tag. CORRECTED.
- Keep buys on crew coins small ($20 lane). The safe size is still unmeasured between ~$20 and ~$270.
- Full table for all crews: wash.py reruns at 14:01 Bangkok (wash, signer fill, wash again) with the new rule (and every night). Lane 2 (REAL) numbers only after that run.

Version 1, 6 Oct 2026 11:45 Bangkok. Latest: http://159.223.88.168/hx-c9ois/brx/pp-wash-fix-result.md
