Identify freshly-created wallets holding meaningful supply on any Solana token — with the Noesis /fresh analysis.

Bot /freshREST GET /api/v1/token/{mint}/fresh-walletsMCP token_fresh_wallets

How to spot fresh-wallet insider activity on a Solana token

TL;DR. Noesis's /fresh analysis lists every holder that was created shortly before the token launched, has fewer than 100 prior transactions, and holds at least 0.05% of supply. One call to GET /api/v1/token/{mint}/fresh-wallets returns a ranked list with amounts, percentages, transaction counts, and Solscan labels. High fresh-wallet counts are the clearest single insider signal on pump.fun.

Why fresh-wallet detection matters

A fresh wallet holding 2% of a newly launched token is doing something no regular trader does. Real traders have history — prior swaps, token positions, SOL transfers going back months. Fresh wallets have none of that; they appear days or hours before a launch and buy immediately.

Teams and bundlers script fresh wallets because they look anonymous in the holder list. Each one is small; the cluster is large. /fresh surfaces them as a set so you can reason about the combined position, not the individual wallets.

What counts as a "fresh" wallet?

/fresh flags a holder if it matches all three criteria:

  1. Low transaction history — fewer than 100 total transactions across its entire lifetime
  2. Recent creation — first activity timestamp close to the token's launch window
  3. Meaningful position — holds at least 0.05% of the token's total supply

The 0.05% threshold filters out tiny dust holders while keeping anything with real exit-liquidity potential. A single 0.05% wallet doesn't matter; 40 of them adds up to 2% of supply moving as a block.

How does Noesis detect fresh wallets?

The analysis does a windowed scan against the full holder list:

The output is a sorted list — highest-supply fresh wallets first — so you see where the concentration is.

How to run the analysis

Telegram bot

/fresh EPjFWdd5...

or the alias /fw. Typical output:

🔥 Fresh Wallets Analysis for EPjFWdd5...
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v

⚠️ Supply controlled by fresh wallets: 7.8% 🟢
🔒 Locked supply (excluded): 0.15%

Top Fresh Wallets:

1. 💰 7xKX...9zF2 → 0.42% 🆕
   ↳ Funded from Kucoin 2h ago

2. 💰 4bBa...pLm1 → 0.38% 🆕
   ↳ Unknown funder

REST API

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

MCP

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

or prompt:

List fresh wallets holding token EPjF...1v with at least 0.05% of supply. Include transaction counts and any Solscan labels.

SDKs

TypeScript

import { Noesis } from "noesis-api";
const noesis = new Noesis({ apiKey: process.env.NOESIS_API_KEY! });
const fresh = await noesis.token.freshWallets("EPjFWdd5...");
console.log(`${fresh.wallets.length} fresh wallets, ${fresh.supply_controlled}% supply`);

Python

from noesis import Noesis
noesis = Noesis(api_key=os.environ["NOESIS_API_KEY"])
fresh = noesis.token.fresh_wallets("EPjFWdd5...")
print(f"{len(fresh['wallets'])} fresh, {fresh['supply_controlled']}% supply")

Rust

let client = noesis_api::Client::new(api_key);
let fresh = client.token_fresh_wallets("EPjFWdd5...").await?;
println!("{} fresh wallets", fresh.get("fresh_count").unwrap());

Understanding the output

How to combine /fresh with other commands

Chain 1 — Fresh wallets → set up a tracker On the Telegram bot, click "Track" on the /fresh output to get pinged when flagged wallets net-buy or net-sell a threshold. Max 5 active trackers per user, 48h TTL.

Chain 2 — Fresh + bundle + team triangulation

/fresh <mint>      → fresh-wallet supply share
/bundle <mint>     → bundle classification
/team <mint>       → funder graph clustering

All three elevated on the same mint is the highest-confidence coordinated-launch signal Noesis produces.

Chain 3 — Fresh wallet → funder drill

/fresh <mint>                        note top fresh wallet
  → /links <fresh_wallet>            map SOL transfer graph
  → /walletchecker <funder>          profile the funding wallet

Chain 4 — Compare against /earlybuyers

/earlybuyers <mint> 1h               early buyers regardless of freshness
/fresh <mint>                        fresh wallets regardless of buy time

The intersection (fresh AND early) is the tightest insider cluster.

When /fresh false-positives

Caveats

FAQ

How many fresh wallets should I worry about? Raw count matters less than combined supply share. 5 fresh wallets holding 20% combined is much worse than 50 fresh wallets holding 2% combined. Target: look at supply_controlled, not fresh_count.

Does /fresh detect wallets that laundered through multiple hops? No — /fresh is a single-hop heuristic (wallet age + tx count + supply share). A team that funds wallet A, then wallet A funds wallet B, then B buys the token, will look "organic" to /fresh because B has graph history. Use /links on suspicious fresh wallets to trace funding multiple hops deep.

Why is there a 0.05% floor? Below that, every pump.fun launch has hundreds of micro-holders with fresh wallets (dust drops, failed snipes). Filtering at 0.05% keeps the output focused on wallets whose combined behavior actually moves the chart.

Can /fresh be used on non-pump.fun tokens? Yes. The logic is token-agnostic; it only needs the token's mint timestamp and a holder list. Works on Raydium/Meteora launches too.

How fresh is "fresh"? The threshold is <100 prior transactions. In practice, flagged wallets usually have under 20. The analysis compares each wallet's first-tx age to the token's mint age and weighs it against total tx count. A 5-day-old wallet with 2 transactions is fresh. A 30-day-old wallet with 200 transactions is not.

Does /fresh update when I rerun it? Yes, every call is computed live. If fresh wallets dump their position below the 0.05% threshold, they drop out of the next response.

Related guides