Key Features
- Anomaly Scoring: Two complementary scorers — a regime-change detector and a Z-score mover detector — highlight coins outside their normal patterns
- Automated Collection: Scheduler-driven
collect.phppulls live data from the CoinGecko API every 15 minutes and stores atomic JSON snapshots in SQLite - 30-Day Backfill: One-time history seeder populates the scorer database so anomalies are detectable from day one, no waiting weeks for data
- AI Coin Enrichment:
enrich_coins.phpfetches CoinGecko descriptions and uses an LLM to generate ≤6-word summaries and AI-relevance badges - Clean Dashboard UI: Browser-based single-page interface renders ranked coin cards with score indicators and enrichment badges in real time via AJAX
- Configurable Constants: All key thresholds and parameters live in
config.ymlfor easy tuning without touching code
Technical Architecture
- Backend: PHP with SQLite (
data/snapsh.db) storing full snapshots as single JSON columns per scorer table - Scorer Design:
AnomalyScorerfactory routes to pluggable scorer implementations viaScorerInterface - Data Pipeline: CoinGecko API →
collect.php→ SQLite → scorers →ajax/get_coins.php→ Browser UI - Frontend: Vanilla JavaScript with Fetch API, no heavy frameworks
- Scheduling: Cron (Linux/macOS) or Windows System Scheduler running
collect.phpevery 15 minutes
Tech Stack
PHP • SQLite • CoinGecko API • LLM (OpenRouter / Ollama) • YAML • Vanilla JavaScript
Use Cases
Quickly identify when a coin is gaining value unusually fast relative to its normal speed — useful for seeing early breakout moves across the top 100 by market cap. Filter by AI-relevance badges to focus on the subset most likely tied to AI narratives in the current market regime.