mcpbeat

Solanatracker API

agiprolabs/solanatracker-api

Solana token data, PnL, risk scores, 1-second OHLCV, wallet analytics, and self-hosted swap execution via Raptor

12k tokens
context cost
the whole folder, loaded on every use
6
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
257
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/agiprolabs/claude-trading-skills --skill solanatracker-api

The instruction itself

19 sections, as written by the author

SolanaTracker API — Token Data, Analytics & Raptor DEX Aggregator

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.

Quick Start

import httpx

API_KEY = os.getenv("SOLANATRACKER_API_KEY", "")
BASE = "https://data.solanatracker.io"
HEADERS = {"x-api-key": API_KEY}

# Token info with risk score, pools, holders
resp = httpx.get(f"{BASE}/tokens/{mint}", headers=HEADERS)
token = resp.json()
print(f"Risk: {token['risk']['score']}/10, Pools: {len(token['pools'])}")

# Wallet PnL
resp = httpx.get(f"{BASE}/pnl/{wallet}", headers=HEADERS)
pnl = resp.json()
print(f"Win rate: {pnl['summary']['winPercentage']}%")

Authentication & Pricing

  • API Key: From your SolanaTracker dashboard, passed as x-api-key header
  • Plans: Starting ~€50/mo (200K requests), €200/mo (higher volume), Enterprise custom
  • Raptor: Free during public beta (self-hosted, no rate limits)

Core Data Endpoints

Token Data

# Full token info (metadata, pools, risk, events, holders summary)
GET /tokens/{tokenAddress}

# New tokens (paginated, pages 1-10)
GET /tokens/latest?page=1

# Trending by volume (default: past hour)
GET /tokens/trending
GET /tokens/trending/{timeframe}  # 5m, 15m, 30m, 1h, 4h, 12h, 24h

# Top performers
GET /tokens/top

# Graduated from bonding curves (pump.fun → Raydium)
GET /tokens/graduated
GET /tokens/graduating

# Multiple tokens in one request
GET /tokens/multi?tokens=ADDR1,ADDR2

# Deployer's tokens
GET /tokens/deployer/{deployerAddress}

# Token by pool address
GET /tokens/pool/{poolAddress}

# All-time high
GET /tokens/{token}/ath

Price Data

# Current price with liquidity and market cap
GET /price?token={address}

# Price with change percentages
GET /price?token={address}&priceChanges=true

# Historic prices (3d, 5d, 7d, 14d, 30d snapshots)
GET /price/history?token={address}

# Multiple token prices
GET /price/multi?tokens=ADDR1,ADDR2

OHLCV Charts (1-second resolution)

# Candle data — supports 1s resolution (unique to SolanaTracker)
GET /chart/{token}?type=1s&time_from=UNIX&time_to=UNIX

# Timeframes: 1s, 5s, 15s, 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d, 3d, 1w, 1mn
# Optional: currency=usd|sol|eur, removeOutliers=true, marketCap=true

# Specialized charts
GET /chart/{token}/bundlers   # Bundler activity overlay
GET /chart/{token}/holders    # Holder count overlay
GET /chart/{token}/insiders   # Insider activity overlay
GET /chart/{token}/snipers    # Sniper activity overlay

Wallet PnL

# Full wallet PnL across all tokens
GET /pnl/{wallet}

# Token-specific PnL
GET /pnl/{wallet}/{token}

# First buyers with PnL
GET /first-buyers/{token}

# Optional params: showHistoricPnL=true (1d/7d/30d), holdingCheck=true

PnL response summary fields: realized, unrealized, total, totalInvested, averageBuyAmount, totalWins, totalLosses, winPercentage, lossPercentage

Wallet Data

# All tokens held by wallet
GET /wallet/{owner}

# Paginated wallet tokens
GET /wallet/{owner}/paginated

# Trade history
GET /wallet/{owner}/trades

# Portfolio chart over time
GET /wallet/{owner}/chart

Holder Analysis

# Paginated holder list
GET /tokens/{token}/holders?page=1

# Top 100 holders
GET /tokens/{token}/holders/top

# Top 20 holders (lighter)
GET /tokens/{token}/holders/top20

# Bundler detection
GET /tokens/{token}/bundlers

Top Traders

# Global top traders
GET /top-traders/all
GET /top-traders/all/paginated?page=1

# Token-specific top traders
GET /top-traders/{token}

# Optional: expandPnl=true, sortBy=total|winPercentage

Risk Assessment

Risk is included in the /tokens/{token} response:

{
  "risk": {
    "score": 7,        // 1-10 (10 = safest)
    "rugged": false,
    "jupiterVerified": true,
    "risks": [
      { "name": "Top 10 holders own 45%", "level": "warn" },
      { "name": "Freeze authority enabled", "level": "danger" }
    ]
  }
}

Risk factors: sniper/insider concentration, developer holdings, bundler activity, top 10 holder %, mint/freeze authority, social presence, metadata completeness, liquidity.

Search (30+ filters)

GET /search?query=BONK&minLiquidity=10000&minRiskScore=5&market=raydium&sortBy=volume&limit=50

# Key filters: query, symbol, minLiquidity, maxLiquidity, minMarketCap, maxMarketCap,
# minVolume, maxVolume, hasImage, hasSocials, minHolders, maxHolders, minRiskScore,
# freezeAuthority, mintAuthority, deployer, market, sortBy, sortOrder, limit (max 500), page

Raptor — Self-Hosted DEX Aggregator

> See the dedicated raptor-dex skill for complete Raptor documentation including setup, API reference, deployment guides, WebSocket streaming, and execution scripts.

Raptor is SolanaTracker's self-hosted DEX aggregator: 25+ DEXes, no rate limits, no API key, Yellowstone Jet TPU submission. GitHub | Docs

DataStream WebSocket

Real-time streaming via WebSocket for 30+ event types:

import websockets, json

async def stream():
    uri = f"wss://datastream.solanatracker.io/{DATASTREAM_KEY}"
    async with websockets.connect(uri) as ws:
        # Subscribe to token trades
        await ws.send(json.dumps({"type": "join", "room": f"transaction:{token_addr}"}))
        # Also: price:{token}, holders:{token}, latest_tokens, graduated, etc.
        async for msg in ws:
            data = json.loads(msg)
            if data.get("type") != "joined":
                print(data)

Key channels: transaction:{token}, price:{token}, holders:{token}, latest_tokens, graduated, graduating, bundlers:{token}, insiders:{token}, snipers:{token}, wallet_transaction:{wallet}

When to Use SolanaTracker vs Alternatives

| Need | Use |

|------|-----|

| 1-second OHLCV candles | SolanaTracker |

| Wallet PnL tracking | SolanaTracker |

| Token risk scoring | SolanaTracker |

| Bundler/sniper detection | SolanaTracker |

| Self-hosted swap execution | Raptor |

| Free no-auth quick lookup | DexScreener |

| Real-time gRPC streaming | Yellowstone |

| Parsed transaction history | Helius |

| Cross-chain data | DexScreener or CoinGecko |

Files

References

  • references/data_api_endpoints.md — Complete Data API endpoint reference with parameters and response schemas
  • references/raptor_setup.md — Raptor quick-start reference (full docs in the raptor-dex skill)
  • references/risk_and_pnl.md — Risk scoring methodology and PnL calculation details
  • docs.solanatracker.io/llms-full.txt — Complete SolanaTracker documentation (13K+ lines, LLM-optimized) covering Data API, Swap API, Datastream WebSocket, Solana RPC, Yellowstone gRPC, SDK libraries, and all endpoint schemas. Fetch on demand rather than embedding.

Scripts

  • scripts/token_analysis.py — Fetch token data, risk score, holders, and trades
  • scripts/wallet_pnl.py — Wallet PnL analysis with win rate and trade breakdown

How to use it

Copy the folder

Take agiprolabs/solanatracker-api from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.