polymarket-copy-tracker

$npx mdskill add aAAaqwq/AGI-Super-Team/polymarket-copy-tracker

Track Polymarket traders' performance using Dune analytics and the Data API.

  • Identify high-ROI wallets and analyze trader win rates.
  • Integrates with Dune analytics and Polymarket Data API.
  • Scores wallets by extracting positions and calculating PnL.
  • Outputs raw JSON or formatted analysis for copy trading.

SKILL.md

.github/skills/polymarket-copy-trackerView on GitHub ↗
---
name: polymarket-copy-tracker
description: Analyze top Polymarket traders for copy trading. Use when asked to find best traders to copy, analyze trader performance/history, evaluate wallet PnL, discover high-ROI wallets, or research trader win rates on Polymarket. Supports Dune analytics, Polymarket Data API, and automated scoring.
---

# Polymarket Copy Tracker

Analyze top Polymarket traders for copy trading signals.

## Data Sources

1. **Data API** (`data-api.polymarket.com`) - Wallet history (public, no auth)
2. **Polymarket.com/leaderboard** - Top traders page (extract wallet addresses)

## Quick Start

### Step 1: Get wallet addresses
```bash
python3 scripts/find_top_traders.py --limit 20
```

### Step 2: Analyze a wallet
```bash
python3 scripts/analyze_wallet.py 0xWALLET_ADDRESS
python3 scripts/analyze_wallet.py 0xWALLET_ADDRESS --json  # raw JSON output
```

### Step 3: Score multiple wallets
```bash
python3 scripts/copy_score.py wallet1 wallet2 wallet3 ...
```

## API Endpoints

### Data API (Public)

```bash
# Open positions
GET https://data-api.polymarket.com/positions?user=WALLET&limit=50

# Closed/resolved positions
GET https://data-api.polymarket.com/closed-positions?user=WALLET&limit=50

# Trade history
GET https://data-api.polymarket.com/trades?user=WALLET&limit=100
```

**Key fields in positions:**
- `title` - Market name
- `size` - Number of shares
- `avgPrice` - Average entry price
- `currentValue` - Current market value
- `cashPnl` - Unrealized P&L (open positions)
- `realizedPnl` - Realized P&L (resolved positions)
- `outcome` - Selected outcome (Yes/No/Team name)
- `redeemable` - True if resolved and can be redeemed

## Scoring Criteria

| Metric | Weight | Good | Bad |
|--------|--------|------|-----|
| Win Rate | 40% | ≥65% | <45% |
| Total PnL | 30% | ≥$1000 | <$0 |
| Risk Score | 20% | <0.8 | ≥1.0 |
| Sample Size | 10% | ≥20 trades | <5 trades |

**Risk Score** = Avg Loss / Avg Win (lower = better, <1.0 means wins > losses)

**Final Score**: 0-100 → COPYABLE (≥70), CAUTION (45-69), NOT RECOMMENDED (<45)

## Example Output

```
=== Analyzing Wallet: 0xf19572...8057 ===

CLOSED POSITIONS (Win Rate & PnL)
==================================================
Total Closed:    49
Win Rate:        67.3%  (33W / 16L)
Total PnL:       +$2,223,761
Avg Win:         $110,028
Avg Loss:        $87,948
Risk Score:      0.80  ✅ GOOD

OPEN POSITIONS: 8 | Value: $17,739 | Unrealized: -$445,325

COPY ASSESSMENT
==================================================
Score: 92/100  ✅ COPYABLE
  ✅ High win rate (67%)
  ✅ Excellent PnL ($2,223,761)
  ✅ Low risk (score 0.80)
  ✅ Good sample (49 trades)
```

## Scripts

| Script | Purpose |
|--------|---------|
| `find_top_traders.py` | Extract wallet addresses from polymarket.com/leaderboard |
| `analyze_wallet.py` | Deep-dive a single wallet (positions, trades, score) |
| `copy_score.py` | Score and rank multiple wallets in parallel |

## Curated Wallet Database

See [references/top-wallets.md](references/top-wallets.md) for a curated list of high-quality wallets organized by tier:
- **Tier 2 wallets** are best for copy trading (high ROI + human-scale activity)
- Includes filtering notes (skip protocol addresses, bots, etc.)

## Discovery Methods

See [references/discovery-methods.md](references/discovery-methods.md) for 5 methods to find wallets:
1. **Dune Profitability Dashboard** — PnL/ROI rankings (free, no login)
2. **Dune Wallet Analyzooooor** — Per-wallet win rate (free, needs login)
3. **Polymarket Data API** — Real-time positions (public API)
4. **Polymarket Leaderboard** — Quick browse top traders
5. **Polymarket Profile Page** — Visual current positions

## Quick Workflow

```bash
# 1. Score a known wallet
python3 scripts/analyze_wallet.py 0x2785e7022dc20757108204b13c08cea8613b70ae

# 2. Compare multiple candidates
python3 scripts/copy_score.py 0x2785e702... 0xed107a85... 0x6a72f618...

# 3. Find new top traders
python3 scripts/find_top_traders.py --limit 20
```

## Notes

- Data API is public (read-only, no auth required)
- Rate limit: ~100 req/min
- Not all wallets have public history (new or privacy)
- `closed-positions` has resolved trades, `positions` has open trades
- PnL is calculated from face value (shares × $1) minus cost (shares × avgPrice)
- Dune data is all-time historical; API shows recent activity
- Wallets with 0 trades but huge PnL are protocol addresses — skip them
- Wallets with >500K trades are likely market-making bots — not suitable for copy trading

More from aAAaqwq/AGI-Super-Team