Solana Top Traders API
Solana Top Traders API
This repository demonstrates how to use the Vybe Solana Top Traders and Trades APIs to fetch, rank, and explore high-performing wallets by either token mint (token mode) or wallet query (wallet mode). It includes a production-ready Node.js backend and a modern frontend that show how to integrate Vybeโs top-trader leaderboard, token metadata, trade context, and holders data to build a practical trader discovery UI.
Try the live demo: https://solana-top-traders-api.vybenetwork.com
Use this project as a reference implementation or starter kit for building Solana trader discovery tools, wallet intelligence dashboards, and PnL/flow analysis products powered by Vybeโs high-performance Solana data APIs.


Get your free Vybe API key โ
Prerequisites
- Node.js โฅ 20 (LTS recommended)
- npm โฅ 10 (or equivalent)
Quick Start
Get from clone to running app in a few commands:
git clone https://github.com/vybenetwork/solana-top-traders-wallets-and-tokens-api.git
cd solana-top-traders-wallets-and-tokens-api
npm install
cp .env.example .env
Edit .env and set VYBEAPIKEY=yourapikey_here
npm start
Then open http://localhost:3000, choose Token or Wallet mode, and click Load.
Environment Variables
| Variable | Required | Description | Example | |------------------|----------|-----------------------------------------------------------------|----------------------------------------| | VYBEAPIKEY | Yes | Vybe API key used for all Vybe requests | yourapikey_here | | SOLANARPCURL | No | RPC endpoint for token-symbol fallbacks (optional) | https://api.mainnet-beta.solana.com | | PORT | No | HTTP server port | 3000 | | TUNNEL | No | Set to 1 to run behind a Cloudflare Tunnel | 1 |
Get your API key at https://vybe.fyi/api-pricing.
What This Repo Provides
- Top traders + trades endpoint proxy
GET /v4/wallets/top-traders (top traders leaderboard)
- GET /v4/trades (trades context)
- GET /v4/programs/labeled-program-accounts (program labels)
- GET /v4/tokens/{mintAddress} (token metadata)
- GET /v4/tokens/{mintAddress}/top-holders (holder context)
- Top traders web UI
src/frontend/app.ts into public/app.js.
- Lets you search and rank wallets by token mint or wallet query, sort by key fields, and review supporting token + trade context.
- Two discovery modes
mintAddress.
- Wallet mode โ search via ilikeFilter for wallet address/name/label matching.
- Context panels
All of this uses Vybeโs production Solana datasets across major DEX venues and aggregated trading activity.
Solana API docs for these endpoints
- Top traders (
GET /v4/wallets/top-traders):
- Historical trades (
GET /v4/trades):
- Token details (
GET /v4/tokens/{mintAddress}):
- Top holders (
GET /v4/tokens/{mintAddress}/top-holders):
- Labeled programs (
GET /v4/programs/labeled-program-accounts):
Why Top Traders Data Matters
Top-trader leaderboards are useful for:
- Trader discovery and intelligence: find wallets that are consistently profitable (by realized PnL), active, or high-volume.
- Wallet clustering and follow lists: start from a wallet query and fan out to related wallets returned by the leaderboard.
- Token research: quickly see who is driving PnL and flow for a given mint, and pair it with token metadata and holder context.
- Program/venue analysis: use trade context to understand which programs and markets dominate the activity behind the leaderboard.
Frontend Overview (Top Traders UI)
The UI is implemented in src/frontend/app.ts and compiled to public/app.js via npm start (which runs npm run build:frontend first).
Sections
- Token stats & metadata
- Top traders leaderboard
mintAddress.
- Wallet mode: leaderboard scoped to ilikeFilter.
- Sort controls map to Vybe sortByAsc / sortByDesc query params.
- Trades context
- Holders context
Server Proxy Routes
The Express server in src/server.ts exposes:
GET /api/tokens/:mint
GET /v4/tokens/{mintAddress} for token metadata (used by the UI header).
GET /api/tokens/:mint/top-holders
GET /v4/tokens/{mintAddress}/top-holders (holder context table).
GET /api/wallets/top-traders
GET /v4/wallets/top-traders (main leaderboard).
GET /api/trades
GET /v4/trades (trade context; query params forwarded).
GET /api/programs/labeled-program-account?programAddress=โฆ
GET /v4/programs/labeled-program-accounts?programAddress=โฆ with caching.
POST /api/programs/labeled-program-accounts
GET /api/health
How to Run
1. Clone the repository
git clone https://github.com/vybenetwork/solana-top-traders-wallets-and-tokens-api.git
cd solana-top-traders-wallets-and-tokens-api
2. Install dependencies
npm install
3. Set your API key
cp .env.example .env
Add your VYBEAPIKEY to .env
4. Run the server + web app
npm start
Then open http://localhost:3000 and fetch results in Token or Wallet mode.
5. (Optional) Run with Cloudflare Tunnel
TUNNEL=1 npm start
Project Structure
solana-top-traders-wallets-and-tokens-api/
โโโ .env.example # Copy to .env, fill in VYBEAPIKEY (and optional SOLANARPCURL, PORT, TUNNEL)
โโโ tsconfig.json # TypeScript config for backend
โโโ tsconfig.frontend.json # TypeScript config for frontend (builds public/app.js)
โโโ package.json # Scripts and dependencies
โโโ README.md
โโโ screenshots/ # Screenshots referenced in this README (you update these)
โโโ public/ # Web GUI (HTML, CSS, built JS)
โ โโโ index.html
โ โโโ app.js # Generated by npm run build:frontend from src/frontend/app.ts
โ โโโ app.css
โโโ src/
โโโ server.ts # Express server; proxies Vybe API and serves public/
โโโ config.ts # Env loading, API base URL, timeouts, PUBLIC_DIR
โโโ cache.ts # On-disk caches (symbol, program-label) in data/
โโโ types/
โ โโโ api.ts # Interfaces matching Vybe API response shapes
โโโ api/
โ โโโ index.ts # createClient(apiKey) โ wires all API methods
โ โโโ client.ts # HTTP wrapper, retries, human-readable errors
โ โโโ wallets.ts # GET /v4/wallets/top-traders
โ โโโ trades.ts # GET /v4/trades, /v4/programs/labeled-program-accounts
โ โโโ tokens.ts # GET /v4/tokens/{mintAddress}, /v4/tokens/{mintAddress}/top-holders
โ โโโ token-symbol.ts# Token symbol fallback helpers (optional)
โโโ frontend/
โโโ app.ts # Top traders UI โ builds to public/app.js
Troubleshooting
| Issue | What to do | |-------------------------------|-----------| | 403 Forbidden | Verify VYBEAPIKEY in .env is correct and has access to these endpoints. | | Slow responses / timeouts | Retry later; reduce limit / time range; check Vybe status. | | Missing env vars | Ensure you copied .env.example to .env and set VYBEAPIKEY. |
Support
- Telegram: Vybe community
- Support ticket: Submit a ticket