Get the top N holders of any Solana token with PnL, win rate, Twitter identity, and Solscan labels — with the Noesis /topholders analysis.

Bot /topholdersREST GET /api/v1/token/{mint}/top-holdersMCP token_top_holders

How to analyze top holders of a Solana token

TL;DR. Noesis's /topholders analysis returns the top 1-50 current holders of any Solana token, each enriched with their historical PnL, win rate, Twitter handle, follower count, and Solscan label. One call to GET /api/v1/token/{mint}/top-holders?limit=20 replaces a Solscan holder list + dozens of per-wallet lookups with a single ranked table.

Why enriched holder analysis matters

A bare holder list on Solscan tells you percentages. It doesn't tell you who's holding. The same 2% position looks very different depending on the wallet:

/topholders collapses all of this into a single sorted table so you can evaluate the holder quality, not just the distribution.

What does /topholders return?

Per holder you get:

  1. Position — current amount held, percentage of supply, rank
  2. Identity — Solscan label, KOL name, Twitter handle, follower count
  3. Performance — historical PnL, 30-day win rate, trade count
  4. Portfolio context — combined USD portfolio value across all tokens

The default limit is 20 holders; you can request 1-50 per call and paginate through the full list via the bot's Prev/Next buttons.

How does Noesis enrich each holder?

The enrichment pipeline layers four data sources on top of GMGN's raw holder list:

Unknown wallets pass through with just position data and generic "TOPn" labels. Known wallets get the full identity stack.

How to run the analysis

Telegram bot

/topholders EPjFWdd5...

or alias /th, with optional count:

/th EPjFWdd5... 30

Typical output (page 1 of 2):

👛 Top Holders — page 1/2

 1. 9aB7...Kzm2 · "@alpha_caller" (52k followers) · 4.2% · +$180k PnL, 71% WR
 2. 4rEp...Nn01 · "Binance Smart Money" · 3.8% · —
 3. Gx9w...Qr71 · unknown · 3.1% · +$4k PnL, 43% WR
 ...

REST API

curl -H "X-API-Key: $NOESIS_API_KEY" \
  "https://noesisapi.dev/api/v1/token/EPjFWdd5.../top-holders"

MCP

token_top_holders(mint="EPjF...1v")

or prompt:

Show the top 20 holders of token EPjF...1v. Include their Twitter handles, PnL, and win rates.

SDKs

TypeScript

import { Noesis } from "noesis-api";
const noesis = new Noesis({ apiKey: process.env.NOESIS_API_KEY! });
const th = await noesis.token.topHolders("EPjFWdd5...");

Python

from noesis import Noesis
noesis = Noesis(api_key=os.environ["NOESIS_API_KEY"])
th = noesis.token.top_holders("EPjFWdd5...")

Rust

let client = noesis_api::Noesis::new(api_key);
let th = client.token_top_holders("EPjFWdd5...").await?;

Understanding the output

How to combine /topholders with other commands

Chain 1 — Top holders → classification

/topholders <mint>                    top 20
  → for each enriched wallet: check win rate + label
  → KOL or smart money → bullish holder
  → fresh/unknown wallet with big position → insider flag

Chain 2 — Top holders → cost basis

/topholders <mint>                    top 20
  → /entrymap <mint>                  where did they enter?
  → top holders in profit → dump risk
  → top holders underwater → panic-sell risk

Chain 3 — Top holders → wallet drill-down

/topholders <mint>                    pick suspicious holder
  → /walletchecker <wallet>           full profile
  → /links <wallet>                   map funding graph

Chain 4 — Top holders ↔ best traders

/topholders <mint>                    current-position ranking
/besttraders <mint>                   historical-profit ranking
  → holders in both = long-term accumulators / believers
  → holders in only /top = late buyers
  → only in /best = already exited

When /topholders can mislead

Caveats

FAQ

How many top holders should I look at? For a meme coin quick read, top 20 is enough — the sniffer-tests (bundlers, team, CEX) all show up by rank 15-20. For deeper analysis of a larger launch, go to 50 and paginate for the full 100.

Why do some holders show "—" for PnL? Three reasons: (1) the wallet has no GMGN profile yet (very fresh), (2) the wallet is a contract / vault / CEX (no personal trading history), or (3) the 30-day window has no trades from that wallet.

How is /topholders different from /besttraders? /topholders ranks by current position size — includes any wallet currently holding, regardless of whether they've traded. /besttraders ranks by realized profit — includes wallets that already sold, doesn't rank by holding.

Can /topholders identify insiders? Partially. It labels known CEXes, KOLs, protocols. Unlabeled large holders with short wallet history + low trade count are flagged only implicitly (position + no context = suspicious). For explicit insider detection, use /team or /fresh.

What's the KOL cache and how reliable is it? 493 Solana KOLs scraped from Kolscan.io with verified Twitter handles. Reliable for well-known traders; won't include niche / private KOLs. Solscan labels fill part of the gap.

Are percentages computed against circulating or total supply? Total supply on-chain, not circulating. For pump.fun tokens pre-graduation, the bonding-curve-locked share is included in the total.

Related guides