{"adoption": {"forks": 866, "observed_at": "2026-08-28T04:05:18.270652+00:00", "stars": 1660}, "canonical_url": "https://ross.abutalabs.com/products/crypto-trading-open", "card": {"archived": false, "artifact_type": "application", "description": "crypto-trading-open", "domain": ["fintech"], "enriched": true, "function": ["trading", "monitoring", "websocket", "cli", "scheduling"], "health_score": 55, "homepage": null, "language": "Python", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["cryptocj520/crypto-trading-open"], "name": "cryptocj520/crypto-trading-open", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2025-12-20T01:49:38+00:00", "repo": "cryptocj520/crypto-trading-open", "stars": 1660, "tags": ["crypto-trading", "arbitrage", "grid-trading", "market-making", "multi-exchange", "funding-rate", "risk-management", "terminal-ui", "cryptocurrency", "automation", "command-line"], "topics": [], "urls": [], "use_cases": ["run cross-exchange crypto arbitrage bots", "automate grid trading on perpetual futures", "capture funding rate differences between exchanges", "monitor price spreads across multiple crypto exchanges", "simulate grid strategies to estimate APR before trading", "inflate trading volume with maker or market orders", "get alerts when crypto prices break key levels"], "what_it_is": "A Python-based multi-exchange cryptocurrency automated trading system with an advanced arbitrage engine at its core, supporting segmented arbitrage, grid trading, volume making, and market monitoring across nine exchanges including Hyperliquid, Backpack, Lighter, Binance, and OKX. It features a unified decision engine, layered risk controls, WebSocket batch order execution, and a Rich-based real-time terminal UI.", "when_to_avoid": ["you need a GUI or hosted trading platform", "you require an audited, licensed trading product - the repo has no license and carries real financial risk", "you only need simple spot trading on a single exchange"], "when_to_choose": ["you need a self-hosted Python trading bot supporting many exchanges in one system", "you want segmented or multi-leg arbitrage with historical spread and funding-rate baselines", "you prefer a terminal-based monitoring UI with layered risk controls"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/crypto-trading-open", "repo": "cryptocj520/crypto-trading-open", "role": "main", "score": 43}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.270652+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:44:40.251937+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44d88a8a94ff7564baceeee23bdbcedf6e5783f34c14ce253fc47f3e184b677c", "fetched_at": "2026-08-28T04:05:18.270652+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cryptocj520/crypto-trading-open"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.270652+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:44:40.251937+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44d88a8a94ff7564baceeee23bdbcedf6e5783f34c14ce253fc47f3e184b677c", "fetched_at": "2026-08-28T04:05:18.270652+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cryptocj520/crypto-trading-open"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:44:40.251937+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44d88a8a94ff7564baceeee23bdbcedf6e5783f34c14ce253fc47f3e184b677c", "fetched_at": "2026-08-28T04:05:18.270652+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cryptocj520/crypto-trading-open"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.270652+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.270652+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.270652+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:44:40.251937+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44d88a8a94ff7564baceeee23bdbcedf6e5783f34c14ce253fc47f3e184b677c", "fetched_at": "2026-08-28T04:05:18.270652+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cryptocj520/crypto-trading-open"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.270652+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.270652+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:44:40.251937+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44d88a8a94ff7564baceeee23bdbcedf6e5783f34c14ce253fc47f3e184b677c", "fetched_at": "2026-08-28T04:05:18.270652+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cryptocj520/crypto-trading-open"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.270652+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.270652+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.270652+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:44:40.251937+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44d88a8a94ff7564baceeee23bdbcedf6e5783f34c14ce253fc47f3e184b677c", "fetched_at": "2026-08-28T04:05:18.270652+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cryptocj520/crypto-trading-open"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.270652+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.270652+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:44:40.251937+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44d88a8a94ff7564baceeee23bdbcedf6e5783f34c14ce253fc47f3e184b677c", "fetched_at": "2026-08-28T04:05:18.270652+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cryptocj520/crypto-trading-open"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:44:40.251937+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44d88a8a94ff7564baceeee23bdbcedf6e5783f34c14ce253fc47f3e184b677c", "fetched_at": "2026-08-28T04:05:18.270652+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cryptocj520/crypto-trading-open"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:44:40.251937+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44d88a8a94ff7564baceeee23bdbcedf6e5783f34c14ce253fc47f3e184b677c", "fetched_at": "2026-08-28T04:05:18.270652+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cryptocj520/crypto-trading-open"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:44:40.251937+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44d88a8a94ff7564baceeee23bdbcedf6e5783f34c14ce253fc47f3e184b677c", "fetched_at": "2026-08-28T04:05:18.270652+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cryptocj520/crypto-trading-open"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 58, "longevity": 21, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 295, "days_push": 257, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 43, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}