Before you buy a token, you're making an implicit bet: that the people who already bought it knew something. Most of the time that bet goes unexamined. The Alpha Wallet Intelligence API makes it explicit — with a single number.
The buyer quality score is a 0–100 rating for any token's early buyer cohort. One API call, one number, tells you whether the wallets that got in before you have a track record of being right. Here's how it works and how to use it.
The Endpoint
GET /api/v1/tokens/{mint}/buyer-quality
Available on all tiers, including BASIC. Results are cached for 5 minutes, so you can poll it repeatedly as a token's early trading unfolds without hammering rate limits.
Response shape:
{
"mint": "...",
"score": 74,
"buyer_count": 12,
"scored_buyer_count": 9,
"avg_win_rate": 0.61,
"avg_net_pnl_sol": 18.4,
"bot_buyer_pct": 0.11,
"bundle_buyer_pct": 0.08,
"kol_count": 1,
"cached_at": "2026-04-15T10:22:11Z"
}
The score is the headline. Everything else is the breakdown that tells you why.
What Goes Into the Score
The score aggregates several signals from the early buyer cohort:
Win Rate Component
The primary input is the average win rate of scored wallets in the cohort. Win rate here is specific: what percentage of their Pump.fun token trades resulted in a profitable exit, measured across their full history in the 25,000+ wallet database.
A cohort where the average win rate is 55%+ is well above the statistical baseline for Pump.fun trading, where variance is high and most participants are net negative over time. Cohorts averaging above 65% are exceptional.
Sample Size Weighting
Not every wallet's win rate is weighted equally. Wallets with fewer than 20 lifetime trades contribute less to the score than wallets with 50, 100, or more trades. This prevents a fresh wallet with 2 wins from 2 trades inflating the number. Statistical confidence scales with sample size.
Bot and Bundle Penalties
Wallets flagged as high-confidence bots (bot_confidence: high) are excluded from the win rate calculation and contribute a downward adjustment to the score via the bot_buyer_pct field. Same for bundle buyers. A cap table that's 40% bots and 30% coordinated bundle buys is not showing you genuine market conviction — the score reflects that.
KOL Bonus
Wallets flagged as known KOLs (is_kol: true) receive a bonus weighting. KOL early entries are a meaningful signal — not because KOLs are always right, but because their presence often precedes a coordinated call that drives volume.
Coverage Factor
scored_buyer_count / buyer_count is the ratio of wallets with enough history to be scored. If only 2 of 15 early buyers are in the database, the score carries a confidence penalty. A score of 80 from 15 scored wallets means something different than a score of 80 from 3 scored wallets. The scored_buyer_count field lets you apply your own confidence threshold.
Score Interpretation Table
| Score | Cohort Quality | What It Typically Means |
|---|
| 80–100 | Exceptional | Multiple high-win-rate wallets, clean of bots/bundles, possibly KOL presence. Rare — treat as strong signal. |
| 65–79 | Strong | Above-average cohort. Most clean buyers have meaningful track records. Worth watching closely. |
| 50–64 | Moderate | Mixed bag. Some solid wallets, some noise. Not a red flag, but not a catalyst either. |
| 35–49 | Weak | Low win rates, thin histories, or elevated bot/bundle percentage. Be cautious. |
| 0–34 | Poor | Bot farm, bundle sweep, or entirely fresh wallets. Cap table offers no positive signal. |
These aren't hard rules — they're calibration guides. A score of 55 on a token with thin early trading volume might improve as more known wallets accumulate. The 5-minute cache means you can watch it evolve.
Using It as a Pre-Buy Filter
The most straightforward use case: add the buyer quality score as a mandatory gate in your token evaluation checklist.
Manual checklist approach:
- Token hits your radar (scanner alert, Telegram call, chart shape)
- Pull the buyer quality score via API or check it in the Solana API toolset
- If score < 45 — skip. The cap table isn't giving you confirmation.
- If score ≥ 65 — escalate to full cap table review (
/api/v1/tokens/{mint}/cap-table)
- Layer with deployer quality if available
- Execute based on combined signal strength
Automated bot filter:
import { MadeOnSolClient } from "madeonsol";
const client = new MadeOnSolClient({ apiKey: process.env.MSK_API_KEY });
const QUALITY_THRESHOLD = 55;
const MIN_SCORED_BUYERS = 3;
async function passesQualityFilter(mint: string): Promise<boolean> {
const quality = await client.alpha.getBuyerQuality(mint);
if (quality.scored_buyer_count < MIN_SCORED_BUYERS) {
return false; // not enough data
}
return quality.score >= QUALITY_THRESHOLD;
}
Wire passesQualityFilter into your scanner pipeline before your entry logic fires. Tokens that don't pass don't get traded, period. This alone can dramatically improve your signal-to-noise ratio. It pairs naturally with the survivability signals in our breakdown of why most Pump.fun tokens die in the first hour — and how to spot the ones that don't.
What the Score Doesn't Tell You
The buyer quality score is a cohort assessment, not a price prediction. A score of 85 means the people who bought early have historically been right — it does not mean this specific token will pump.
It also doesn't account for:
Liquidity and depth. A token with a great quality score but 0.2 SOL of liquidity will destroy your entry and exit. Score the buyers, but always check liquidity separately.
Narrative and catalyst. Smart money can be early but wrong about timing. A token bought by sharp wallets may take days to move, or may never move at all if the meta shifts. The score is one signal, not a complete thesis.
Post-score accumulation. The 5-minute cache means the score reflects a snapshot. If a new batch of high-quality buyers enters after your query, you won't see it until the cache refreshes. Poll repeatedly during the first few minutes of a token's life if you're watching it actively.
Comparing to Other Token Scanners
Most Solana token scanners check contract-level risk: rug indicators, liquidity locks, mint authority status, creator history. These are important checks — but they tell you about downside risk, not upside potential.
The buyer quality score is orthogonal to rugcheck-style analysis. A token can be rug-safe and have a terrible buyer quality score (bought by bots and fresh wallets with no history). It can also be a higher-risk token with a strong buyer quality score (no contract guarantees, but sharp wallets got in early).
The complete pre-buy stack runs both checks:
- Contract/risk check (RugCheck, SolSniffer) — eliminates obvious scams
- Buyer quality score — assesses smart money conviction
- Cap table review (if score is high) — confirms the specifics
- Deployer check — validates the source
Each filter eliminates a different category of bad trade. Together they form a layered defense against the most common ways Pump.fun traders lose money.
Backtesting Your Thresholds
The most underrated use of the buyer quality score is retrospective analysis. Before committing to a threshold like "only buy if score >= 55," test it against your own trade history.
Take the last 30 tokens you bought. Query the buyer quality score for each of them (using the mint addresses from your wallet history). Then map the scores against your actual outcomes: did tokens with higher scores perform better? What threshold, if applied consistently, would have improved your win rate?
This kind of calibration is specific to your trading style and time horizon. A scalper who holds 5 minutes may find the score less predictive than a position trader who holds hours — because the score reflects whether smart money entered early, not whether the token will pump in the next 300 seconds. Understanding how the score correlates with your specific strategy is what turns it from a generic signal into a tuned filter.