About this project

## Overview `robinhood_screener` is an **alert-only** memecoin screener for **Robinhood Chain** (chainId 4663), rebuilt as an EVM port of a Solana-based system. It discovers new tokens from factory logs, rejects rugs, honeypots, and serial deployers, ranks survivors, and alerts the top tier with a pre-computed size/stop/take-profit plan. It also maintains a ledger of forward returns, uses non-alerted survivors as a silent control, simulates the alerted book at real router quotes, and re-scores exit/entry policies weekly behind statistical gates. **It never touches keys or funds. Nothing here is financial advice.** ## Honest Performance Context The system's prior Solana run (two months) showed negative expectancy: A-tier (best survival odds) had 0/16 positive at 7 days, winners peak ~4h after entry and give back 80% by 24h, and no exit policy beats "sell instantly" (the best was the negative control at -3.45%, which equals round-trip cost). The screen's job is to tell you not to scale, not to predict ROI. ## Key Features - **Discovery**: Reads UniswapV2 `PairCreated`, Flap `TokenCreated`, V3 `PoolCreated`, and V4/launchpad logs (Bankr/Doppler, Pons) to find new tokens. - **Hard Gates**: Two-pass filtering using market data, chain facts (owner renounced, LP burned, honeypot round trip), and external sources (Dexscreener, GeckoTerminal, Blockscout, ScanHood, RobinX, KyberSwap, GMGN). Pass-through rule: a source that is dark/rate-limited passes through but is named. - **Entry Bands**: Pure functions that score survivors; champion band alerts (currently `band_volume_early`: age ≤30min, volume ≥$50k, liquidity ≥$10k, mcap ≤$2M, buys ≥2× sells). A-tier = early, heavily traded, buyer-dominated, past all hard gates. - **Ledger & Control**: Every survivor is ledgered as an event; A (alerted) vs B (silent control) scorecard tests if the band adds signal. - **Exit Policies**: 16 policies + 2 negative controls run live on paper fills; weekly gate (7 checks) promotes only if statistically better than controls. - **Paper Trading**: Every alert and exit is filled at real router quotes (V2 router, Kyber, ScanHood) with $10 size; execution costs are measured (≈2.3% all-in on V2). - **Self-Improvement**: Sunday headless Claude session proposes new entry/exit candidates; only merged if they pass invariant tests and statistical gates. - **Deployment**: GitHub Actions keeper job (self-chaining, 240s cadence) with watchdog; Mac runs weekly improve/research jobs. ## Architecture - `config.py`: All thresholds, weights, paths, credentials. - `screen.py`: Pure gate/score functions. - `run.py`: One-shot cloud scan pipeline. - `ledger.py`: Event rows, forward returns, scorecard. - `alerts.py`: Delivery (macOS/ntfy/Telegram). - `quotes.py`: Paper fill quotes. - `paper_exec.py`: Paper A book. - `dashboard.py`: Static HTML dashboard. - `verify.py`: Invariant test suite. - `sources/`: Vendor adapters (RPC, Blockscout, etc.). - `selfimprove/`: Exit/entry loops, candidates, research. ## Usage ```bash python3 verify.py # run tests python3 run.py # dry run python3 run.py --commit # write data, no alerts python3 run.py --send # write and alert python3 ledger.py # A vs B scorecard python3 paper_exec.py # paper book ``` ## Honest Limitations - Negative expectancy is acknowledged; the screen is a risk-management tool. - LP-burn and round-trip checks are exact only for UniswapV2 pairs; V3/V4/launchpad tokens have unknown LP status. - Some Solana gates (insider clustering, freeze authority) have no EVM analogue. - Real automated trading is justified only if the paper scorecard is repeatedly positive. ## License Not specified in the repository.