The list is for wallets a copier gets real flow from; dormant or
low-frequency edges (however good) don't belong on it.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* per-trade Discord pings removed everywhere: copybot placement/settle/startup
alerts silenced (engine.webhook forced off), webhook_receiver.py archived,
Procfile removed. The ONLY Discord output is now live/discord_daily.py at the
end of the daily pipeline: one embed listing every watch_sharps wallet with a
Polymarket profile link + 30D conviction win% / record / P&L.
* trust.py fixes found on the first scheduled run (sharp list collapsed 25->7):
- Polymarket rewrites endDate after resolution, so freshly re-pulled wallets'
corrected res_t stopped matching the stale cross-wallet consensus
(374/454 of iohihoo's rows wrongly distrusted). v2 rows with resolved=TRUE
are now self-certifying (resolved=TRUE implies endDate-based res_t observed
post-end) — consensus only gates legacy rows.
- daily.sh invalidates watchlist wallets by DELETING their pulled row; a
transiently failed re-pull then dropped the wallet's entire history from
the trusted set (the 0x73afc816 whale vanished). Legacy rows of wallets
missing from pulled now fall back to trusting markets resolved >=14d ago.
Re-run: 85 conviction wallets, 34 copy-positive sharps — whale/iohihoo/
Stavenson/LSB1/Kruto all recovered.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Two data bugs were hiding the best copy targets (FINDINGS 'The holder
blind spot'):
* live/trust.py (new): only score rows whose res_t matches the market's
consensus resolution time across >=2 wallets, pulled after resolution,
resolved != False. Kills the res_t=ts fallback poison that let scalpers
masquerade as 99%-win holders (ArbTraderRookie's rows were 100% this).
* conviction_scan.py: trusted rows only; p80 conviction cutoff from the
train window only (look-ahead leak); new gates z_all>2 (whole-book z,
~doubles pooled forward copy-ROI) and median conviction stake >=$50
(dust filter). 55 wallets selected, forward 30/38 profitable, +21.4%
pooled (was 284 selected, +16.0%).
* validate_timing.py: the held-edge gates now read the trailing-90d
trusted conviction record via trust.conviction_record instead of the
replay's held leg, which is structurally ~all-unresolved for week-lead
holders (whale 0x73afc816 showed 'held 0-0, 21 unresolved' and was
rejected at 100% fwd win). 25 copy-positive holders now, including
Stavenson (51-0), the whale (112-4) and iohihoo (98-10).
* cache.py: query() helper so trust.py shares the single in-process
connection instead of fighting the single-writer lock.
* README: gotcha 8 (fake res_t/won) + candidate next data sources
(Goldsky pipelines, PolymarketData order books, Pinnacle CLV,
Polysights); FINDINGS: dated section correcting the iohihoo/ArbTrader
scalper-trap verdicts as winner=False-bug artifacts.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The three trusted-record holders from the May->June re-validation (51-0,
112-4, 98-10 trailing conviction records; see FINDINGS 'holder blind spot').
Existing five wallets unchanged; p80 floors from the cache (Stavenson 3922.17,
whale 940.14, iohihoo 55.63).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Proportional add-mirroring was unbounded after max_position_usd was lifted -
fortuneking doubling into his own bet took one game to $90 on a $42-stake
book (2.15 stakes). Adds now only top a position up to stake_usd(); the
backtest was already one-market-one-stake, so bot and model agree again.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Once working equity exceeds stake_cap/pct ($6,250 at 4%), surplus cash sweeps
to state["reserve"]/portfolio reserve - banked, never bet, immune to drawdown
- keeping stakes at the $250 level where marketable fills sit inside typical
book depth. Feed/summary gain reserve; realized = cash+exposure+reserve-bank.
June backfill: equity $15,684 (+1468%), $9,185 banked, next stake pinned $250.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
+$2,454 copy P&L, 72.4% conviction win (144-55), $257 avg bet, 2.1h median
lead. Added to bot configs (p80 floor $115.27) + backtest set. June backfill
with him: +2677% (in-sample selection bias + compounding, next stake $1,070 -
treat as a ceiling; depth-aware fills become necessary at these clip sizes).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Realism section updated (0.95 entry cap, asymmetric guard, measured lag);
new gotchas list leads with the CLOB winner=False semantics that caused the
2026-07-02 settle bug.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- guard: by rule, a price BELOW the sharp's fill always passes (strictly
better odds; the symmetric guard once skipped a 0.70->0.51 improvement that
won +$36). Only adverse drift is gated by price_guard_pct.
- entry cap: June sweep (0.75-1.0) peaked at max_entry 0.95 - >95c favorites
added ~23 wins yet lowered final equity (slip+fee eat 1-3% payouts, capital
compounds better elsewhere); deep caps cut real winners. Set in all configs
+ portfolio MAX_ENTRY (env-overridable for sweeps; PORTFOLIO_OUT added).
Canonical June backfill: +716%, 219W/52L, $374 fees.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
All 7 missed entries were insta-settled as losses under the pre-fix semantics.
Chain-verified reality: 4 won, 2 lost, 1 still unresolved (reopened). Missed
P&L -249.17 -> -18.36.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The CLOB reports winner=False on EVERY token of an unresolved market; only a
True winner anywhere means resolved. resolution_price treated False as "lost",
so the 60s poller settled live in-play positions as instant losses 1-3 min
after entry (June's ~2h Actions cadence masked it - markets had genuinely
resolved by the next check). Same semantics fixed in _market's resolved-cache
gate and validate_timing._clob_winner (unresolved held bets were counted as
losses, biasing copy_pnl selection downward).
Also: _record_lag now AGGREGATES fills per token (ADD used to overwrite the
display record, showing one fill's cost against the whole position's P&L -
the Cost $20.84 vs P&L -$57.30 confusion).
State repaired: the four July bets all actually WON on-chain (verified by
token winner flags) - settled correctly, +$225.40 proceeds restored, book
$1,045.19 (+45.19 realized, 4W/0L).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>