Identify early buyers of any Solana token within a time window and filter by supply share — with the Noesis /earlybuyers analysis.

Bot /earlybuyersREST GET /api/v1/token/{mint}/early-buyersMCP token_early_buyers

How to find the first buyers of a Solana token

TL;DR. Noesis's /earlybuyers analysis returns every wallet that bought a Solana token within a configurable time window (default 1 hour from launch) and still holds at least X% of supply (default 1%). One call to GET /api/v1/token/{mint}/early-buyers?hours=1&min_percent=1 returns a ranked list with entry prices, current PnL, and Solscan labels — DEX program addresses are filtered out automatically.

Why early-buyer analysis matters

Early buyers fall into three populations that matter very differently:

Separating these three requires context: who else did they buy with, what's their historical PnL, are they funded from a CEX? /earlybuyers gives you the list; combining it with /walletchecker and /links gives you the classification.

What does /earlybuyers return?

The analysis returns every wallet that:

  1. Bought within the time window — default first hour, adjustable from 0.1h to 24h
  2. Still holds a meaningful position — default ≥1% of supply, adjustable from 0.01% to 100%
  3. Is not a DEX / AMM / bonding curve program — those are automatically filtered out

For each matching wallet, Noesis returns entry time, entry amount, current position, current PnL in USD, and any Solscan identity label.

How does Noesis detect early buyers?

The analysis does a time-windowed scan of the token's transaction history:

Results are sorted by entry time ascending so you see first-in at the top.

How to run the analysis

Telegram bot

/earlybuyers EPjFWdd5... 1h 1%

or the alias /eb. The two trailing args are optional — defaults are 1h and 1%.

Typical output:

⏱️ Early Buyers · first 1h
Scanned 8,432 transactions · 47 buyers

  1. 7xKX...9zF2 — Bought: 12.4 SOL | 3.2%
  2. 4bBa...pLm1 — Bought: 10.8 SOL | 2.8% · "KOL: @alpha"
  3. Gx9w...Qr71 — Bought:  7.5 SOL | 1.9%
  ...

REST API

curl -H "X-API-Key: $NOESIS_API_KEY" \
  "https://noesisapi.dev/api/v1/token/EPjFWdd5.../early-buyers?hours=1"

MCP

token_early_buyers(mint="EPjF...1v", hours=1)

or prompt:

List early buyers of token EPjF...1v in the first hour. Include the transaction signatures, SOL spent, and token amounts.

SDKs

TypeScript

import { Noesis } from "noesis-api";
const noesis = new Noesis({ apiKey: process.env.NOESIS_API_KEY! });
const eb = await noesis.token.earlyBuyers("EPjFWdd5...", { hours: 1 });
eb.buyers.forEach(b => console.log(b.address, b.sol_spent, b.timestamp));

Python

from noesis import Noesis
noesis = Noesis(api_key=os.environ["NOESIS_API_KEY"])
eb = noesis.token.early_buyers("EPjFWdd5...", hours=1)
for b in eb["buyers"]:
    print(b["address"], b["sol_spent"], b["timestamp"])

Rust

let client = noesis_api::Noesis::new(api_key);
let eb = client.token_early_buyers("EPjFWdd5...", 1.0).await?;

Understanding the output

Supply-percent filtering can be applied client-side using token_amount / token.total_supply.

How to combine /earlybuyers with other commands

Chain 1 — Are the early buyers smart money?

/earlybuyers <mint> 1h 1%
  → /walletchecker <early_buyer>        check 30d PnL, win rate
  → profitable historical traders → smart money
  → fresh wallets with no history → bundlers / team

Chain 2 — Are the same early buyers across multiple tokens?

/earlybuyers <mint_a> 1h 0.5%
/earlybuyers <mint_b> 1h 0.5%
  → /cross <mint_a> <mint_b>            confirms recurring early wallets

Chain 3 — Early buyers vs fresh wallets

/earlybuyers <mint> 10m 0.1%           who bought in first 10 min
/fresh <mint>                          who's on a fresh wallet
  → intersection = insider snipers
  → early-but-not-fresh = smart money
  → fresh-but-not-early = late bundlers

Chain 4 — Early buyers + bundle detection

/earlybuyers <mint> 10m 0.1%
/bundle <mint>
  → /bundle percentages should roughly match the first-block early buyer cluster

When /earlybuyers can mislead

Caveats

FAQ

What window should I use for pump.fun launches? Start with 1h and 1%. If the list is too long, lower the window to 10-30 minutes and/or raise min_percent. If the list is empty, widen to 4-6h — some tokens mint quietly and only start trading later.

Are early buyers always insiders? No. On Solana, bot-driven smart money regularly buys in the first block of viral launches. Cross-reference with /walletchecker to classify — high historical PnL and win rate = smart money; fresh wallet with no history = likely insider.

Why are some wallets missing from the list despite being early? Either they sold below the min_percent threshold, or they were a DEX/AMM program and got filtered. Lower the threshold or check the raw holder list with /topholders.

How does /earlybuyers differ from /topholders? /topholders sorts by current position size. /earlybuyers filters by buy time first, then by position. A large current holder that bought late won't appear in /earlybuyers.

Can I see early sellers? Not via /earlybuyers directly — it only lists wallets still holding. For realized-profit flippers ("rat traders"), use /bundle which tracks that category explicitly.

Does the window start from mint time or first trade? From the token's on-chain mint timestamp. This matches pump.fun launch time for pump.fun tokens.

Related guides