Work / Collaborations
CleanPlay
Graph-based device trust scoring that targets gold-selling rings in online games but never penalizes a shared family IP.
- Python 3.11
- FastAPI
- Neo4j (Cypher)
- RocketRide
- Claude Haiku 4.5
- PyJWT (RS256)
- Stripe (test mode)
- Docker
- Railway
A collaboration with Fluxxion88.
What it does
CleanPlay models a game economy as a Neo4j graph and scores every device from 0 to 100. Three Cypher detectors look for:
- one-directional, high-value transfer funnels (one to four hops) out of farm-like accounts;
- clusters of accounts created close together on one device;
- brand-new accounts that receive more than 2,000 gold within 48 hours.
Shared IP carries a weight of exactly zero by design, so a family behind one router isn’t flagged for living together. With these weights, the seeded ring’s mule device lands at 5/100 while the seeded family stays at 100.
Around the scorer
A moderator scan writes a short case report through a RocketRide pipeline on Claude Haiku 4.5, stores the verdict, and sends a Discord alert for untrusted devices, all behind RS256 JWT auth and a metered free/pro plan. Eight commits, five of them co-authored with Claude, take it from a first-phase skeleton to a Dockerized Railway deploy in under three hours.
Status
Built and demonstrated on synthetic, seeded data only. Payments run in Stripe’s test mode.
Verified numbers
| Metric | Value | Source |
|---|---|---|
| Score penalties: funnel / clustered device / new-account smurfing / shared IP | −70 / −25 / −25 / 0 (from 100) | Fluxxion88/cleanplay/scripts/scoring.py:33-38 |
| Detectors: funnel depth · new-account rule | 1–4 hops · > 2,000 gold within 48 h | Fluxxion88/cleanplay/scripts/detect_queries.py |
| Seeded ring’s mule device vs. seeded family | 5 vs. 100 (synthetic data) | Fluxxion88/cleanplay/README.md |