Detection Methods
1. Funding Source Clustering
Identifies wallets funded from the same source within a short time window. How it works:- For each wallet in the cohort, identify the funding source (first incoming SOL transfer)
- Group wallets by funding source address
- Flag clusters where 3+ wallets were funded within a 1-hour window
- Elevate confidence to “high” if all wallets in the cluster also enrolled in the competition within 5 minutes of each other
| Cluster Size | Time Window | Confidence |
|---|---|---|
| 2 wallets | <1 hour | Low (not flagged alone) |
| 3+ wallets | <1 hour | Medium |
| 3+ wallets | <1 hour + enrollment within 5 min | High |
2. Trading Pattern Correlation
Detects wallets executing suspiciously similar trading patterns. How it works:- Pre-filter: Check activity overlap between wallet pairs (O(n) fast check) — skip pairs with no overlapping trading days
- Correlation: Compute Pearson correlation coefficient on trade timing sequences
- Threshold: Flag pairs with correlation >= 0.85
- High confidence: Correlation >= 0.95
3. P&L Mirroring
Detects wash trading where one wallet intentionally loses to boost another. How it works:- Bucket split: Separate wallets into positive-PnL and negative-PnL groups
- Cross-bucket comparison: For each positive/negative pair, check if their PnL percentages sum to within 2% of zero
- Flag: Pairs where
|pnlA + pnlB| < 2%are flagged as potential wash trading
Confidence Levels
Each detection produces a confidence level:| Level | Meaning | Action |
|---|---|---|
| Low | Single weak signal | Monitored, not flagged |
| Medium | One strong signal or two weak signals | Flagged for manual review, rewards held |
| High | Multiple strong signals | Flagged, rewards blocked, ops alert sent |
How Flags Affect Traders
Flagged traders are not removed from the leaderboard. Instead:- They remain visible in standings (preserving transparency)
- They sort below all eligible traders regardless of score
- They cannot claim rewards until ops review is complete
- A
disqualification_reasonfield explains the flag - Discord ops webhook fires for high-confidence flags
Abuse Flags
The system tracks four types of abuse flags on each trader:| Flag | Trigger | Effect |
|---|---|---|
sybil_suspicion | Funding cluster or pattern correlation detected | Rewards held |
wash_trading_suspicion | P&L mirroring detected | Rewards held |
specialist_violation | Traded on disallowed market during specialist challenge | Immediate DQ |
manual_review | Ops team flags for investigation | Rewards held |
Batch Processing
For production cohorts with many wallets, the sybil detector uses batch processing:SybilCluster objects containing:
- List of involved wallets
- Confidence level
- Detection reason
- Timestamp of detection