Top Wallets
| Rank | Address | PnL Total | Trades | Categories | Health | Credibility |
|---|
Recent Signals
| Time | Market | Direction | Entry | Strength | Wallets | Kelly Size |
|---|
"""FastAPI dashboard for the copy-trader. Endpoints: /api/stats — overall counters /api/wallets — top-priority wallet pool /api/signals/recent — recent consensus signals /api/health — liveness check """ import logging from typing import Optional from fastapi import FastAPI, Query from fastapi.responses import HTMLResponse from src.config import get_settings from src.db.database import CopyTraderDatabase logger = logging.getLogger(__name__) app = FastAPI(title="Polymarket Copy Trader Dashboard") def _get_db() -> CopyTraderDatabase: settings = get_settings() return CopyTraderDatabase(settings.db_path) @app.get("/api/stats") def api_stats(): db = _get_db() return db.get_stats() @app.get("/api/wallets") def api_wallets(limit: int = Query(50, ge=1, le=200)): db = _get_db() wallets = db.get_all_wallet_targets() return wallets[:limit] @app.get("/api/signals/recent") def api_signals(limit: int = Query(20, ge=1, le=200)): db = _get_db() return db.get_recent_signals(limit=limit) @app.get("/api/health") def api_health(): return {"status": "ok"} HTML_TEMPLATE = """
Live signal & wallet dashboard · auto-refresh 30s