$npx -y skills add agiprolabs/claude-trading-skills --skill solanatracker-apiSolana token data, PnL, risk scores, 1-second OHLCV, wallet analytics, and self-hosted swap execution via Raptor
| 1 | # SolanaTracker API — Token Data, Analytics & Raptor DEX Aggregator |
| 2 | |
| 3 | SolanaTracker provides comprehensive Solana token data with unique features: **1-second OHLCV resolution**, **wallet PnL tracking**, **risk scoring**, **bundler/sniper detection**, and a **self-hosted DEX aggregator (Raptor)** supporting 25+ DEXes with no rate limits. |
| 4 | |
| 5 | ## Quick Start |
| 6 | |
| 7 | ```python |
| 8 | import httpx |
| 9 | |
| 10 | API_KEY = os.getenv("SOLANATRACKER_API_KEY", "") |
| 11 | BASE = "https://data.solanatracker.io" |
| 12 | HEADERS = {"x-api-key": API_KEY} |
| 13 | |
| 14 | # Token info with risk score, pools, holders |
| 15 | resp = httpx.get(f"{BASE}/tokens/{mint}", headers=HEADERS) |
| 16 | token = resp.json() |
| 17 | print(f"Risk: {token['risk']['score']}/10, Pools: {len(token['pools'])}") |
| 18 | |
| 19 | # Wallet PnL |
| 20 | resp = httpx.get(f"{BASE}/pnl/{wallet}", headers=HEADERS) |
| 21 | pnl = resp.json() |
| 22 | print(f"Win rate: {pnl['summary']['winPercentage']}%") |
| 23 | ``` |
| 24 | |
| 25 | ## Authentication & Pricing |
| 26 | |
| 27 | - **API Key**: From your SolanaTracker dashboard, passed as `x-api-key` header |
| 28 | - **Plans**: Starting ~€50/mo (200K requests), €200/mo (higher volume), Enterprise custom |
| 29 | - **Raptor**: Free during public beta (self-hosted, no rate limits) |
| 30 | |
| 31 | ## Core Data Endpoints |
| 32 | |
| 33 | ### Token Data |
| 34 | |
| 35 | ```python |
| 36 | # Full token info (metadata, pools, risk, events, holders summary) |
| 37 | GET /tokens/{tokenAddress} |
| 38 | |
| 39 | # New tokens (paginated, pages 1-10) |
| 40 | GET /tokens/latest?page=1 |
| 41 | |
| 42 | # Trending by volume (default: past hour) |
| 43 | GET /tokens/trending |
| 44 | GET /tokens/trending/{timeframe} # 5m, 15m, 30m, 1h, 4h, 12h, 24h |
| 45 | |
| 46 | # Top performers |
| 47 | GET /tokens/top |
| 48 | |
| 49 | # Graduated from bonding curves (pump.fun → Raydium) |
| 50 | GET /tokens/graduated |
| 51 | GET /tokens/graduating |
| 52 | |
| 53 | # Multiple tokens in one request |
| 54 | GET /tokens/multi?tokens=ADDR1,ADDR2 |
| 55 | |
| 56 | # Deployer's tokens |
| 57 | GET /tokens/deployer/{deployerAddress} |
| 58 | |
| 59 | # Token by pool address |
| 60 | GET /tokens/pool/{poolAddress} |
| 61 | |
| 62 | # All-time high |
| 63 | GET /tokens/{token}/ath |
| 64 | ``` |
| 65 | |
| 66 | ### Price Data |
| 67 | |
| 68 | ```python |
| 69 | # Current price with liquidity and market cap |
| 70 | GET /price?token={address} |
| 71 | |
| 72 | # Price with change percentages |
| 73 | GET /price?token={address}&priceChanges=true |
| 74 | |
| 75 | # Historic prices (3d, 5d, 7d, 14d, 30d snapshots) |
| 76 | GET /price/history?token={address} |
| 77 | |
| 78 | # Multiple token prices |
| 79 | GET /price/multi?tokens=ADDR1,ADDR2 |
| 80 | ``` |
| 81 | |
| 82 | ### OHLCV Charts (1-second resolution) |
| 83 | |
| 84 | ```python |
| 85 | # Candle data — supports 1s resolution (unique to SolanaTracker) |
| 86 | GET /chart/{token}?type=1s&time_from=UNIX&time_to=UNIX |
| 87 | |
| 88 | # Timeframes: 1s, 5s, 15s, 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d, 3d, 1w, 1mn |
| 89 | # Optional: currency=usd|sol|eur, removeOutliers=true, marketCap=true |
| 90 | |
| 91 | # Specialized charts |
| 92 | GET /chart/{token}/bundlers # Bundler activity overlay |
| 93 | GET /chart/{token}/holders # Holder count overlay |
| 94 | GET /chart/{token}/insiders # Insider activity overlay |
| 95 | GET /chart/{token}/snipers # Sniper activity overlay |
| 96 | ``` |
| 97 | |
| 98 | ### Wallet PnL |
| 99 | |
| 100 | ```python |
| 101 | # Full wallet PnL across all tokens |
| 102 | GET /pnl/{wallet} |
| 103 | |
| 104 | # Token-specific PnL |
| 105 | GET /pnl/{wallet}/{token} |
| 106 | |
| 107 | # First buyers with PnL |
| 108 | GET /first-buyers/{token} |
| 109 | |
| 110 | # Optional params: showHistoricPnL=true (1d/7d/30d), holdingCheck=true |
| 111 | ``` |
| 112 | |
| 113 | **PnL response summary fields**: `realized`, `unrealized`, `total`, `totalInvested`, `averageBuyAmount`, `totalWins`, `totalLosses`, `winPercentage`, `lossPercentage` |
| 114 | |
| 115 | ### Wallet Data |
| 116 | |
| 117 | ```python |
| 118 | # All tokens held by wallet |
| 119 | GET /wallet/{owner} |
| 120 | |
| 121 | # Paginated wallet tokens |
| 122 | GET /wallet/{owner}/paginated |
| 123 | |
| 124 | # Trade history |
| 125 | GET /wallet/{owner}/trades |
| 126 | |
| 127 | # Portfolio chart over time |
| 128 | GET /wallet/{owner}/chart |
| 129 | ``` |
| 130 | |
| 131 | ### Holder Analysis |
| 132 | |
| 133 | ```python |
| 134 | # Paginated holder list |
| 135 | GET /tokens/{token}/holders?page=1 |
| 136 | |
| 137 | # Top 100 holders |
| 138 | GET /tokens/{token}/holders/top |
| 139 | |
| 140 | # Top 20 holders (lighter) |
| 141 | GET /tokens/{token}/holders/top20 |
| 142 | |
| 143 | # Bundler detection |
| 144 | GET /tokens/{token}/bundlers |
| 145 | ``` |
| 146 | |
| 147 | ### Top Traders |
| 148 | |
| 149 | ```python |
| 150 | # Global top traders |
| 151 | GET /top-traders/all |
| 152 | GET /top-traders/all/paginated?page=1 |
| 153 | |
| 154 | # Token-specific top traders |
| 155 | GET /top-traders/{token} |
| 156 | |
| 157 | # Optional: expandPnl=true, sortBy=total|winPercentage |
| 158 | ``` |
| 159 | |
| 160 | ### Risk Assessment |
| 161 | |
| 162 | Risk is included in the `/tokens/{token}` response: |
| 163 | |
| 164 | ```json |
| 165 | { |
| 166 | "risk": { |
| 167 | "score": 7, // 1-10 (10 = safest) |
| 168 | "rugged": false, |
| 169 | "jupiterVerified": true, |
| 170 | "risks": [ |
| 171 | { "name": "Top 10 holders own 45%", "level": "warn" }, |
| 172 | { "name": "Freeze authority enabled", "level": "danger" } |
| 173 | ] |
| 174 | } |
| 175 | } |
| 176 | ``` |
| 177 | |
| 178 | **Risk factors**: sniper/insider concentration, developer holdings, bundler activity, top 10 holder %, mint/freeze authority, social presence, metadata completeness, liquidity. |
| 179 | |
| 180 | ### Search (30+ filters) |
| 181 | |
| 182 | ```python |
| 183 | GET /search?query=BONK&minLiquidity=10000&minRiskScore=5&market=raydium&sortBy=volume&limit=50 |
| 184 | |
| 185 | # Key filters: query, symbol, minLiquidity, maxLiquidity, minMarketCap, maxMarketCap, |
| 186 | # minVolume, maxVolume, hasImage, hasSocials, minHolders, maxHolders, minRiskScore, |
| 187 | # freezeAuthority, mintAuthority, deployer, market, sortBy, sortOrder, limit (max 500), page |
| 188 | ``` |
| 189 | |
| 190 | ## Raptor — Self-Hosted DEX Aggregator |
| 191 | |
| 192 | > |