Get SOL balance, total PnL, win rate, trade counts, and risk flags for any Solana wallet — with the Noesis /walletchecker analysis.

Bot /walletcheckerREST GET /api/v1/wallet/{addr}MCP wallet_profile

How to get a full PnL profile for any Solana wallet

TL;DR. Noesis's /walletchecker analysis returns a full trading profile for any Solana wallet: SOL balance, holdings, funding source, win rate and PnL across four time windows (1d, 7d, 30d, all-time), trade counts, and Solscan identity. One call to GET /api/v1/wallet/{addr} replaces cycling through GMGN + Solscan + Birdeye manually.

Why wallet PnL profiling matters

Every on-chain investigation eventually asks the same question: is this wallet actually profitable, or is it a bagholder cosplaying as smart money? /walletchecker answers that in one call:

Single lookup, answers all four.

What does /walletchecker return?

Every call returns:

  1. Identitywallet_data (name, tags, social), wallet_info, Solscan label, tags, domains (.sol names)
  2. Position — live sol_balance, current holdings breakdown, funding (funder address + labeled source)
  3. Profit stats across 4 periodsprofit_stat_1d, profit_stat_7d, profit_stat_30d, profit_stat_all. Each gives win rate, realized + unrealized PnL, trade counts, and avg hold time for that window.
  4. Holdings & identity enrichment — token balances with USD values, exchange/protocol labels from Helius

All four periods are returned in every response. Pick whichever you need from the response — no query param needed.

How does Noesis build the profile?

The analysis fans out several upstream calls in parallel:

All calls run in parallel so the first call is typically 1-3 seconds.

How to run the analysis

Telegram bot

/walletchecker 9aB7...Kzm2

Aliases: /wc, /wallet.

Typical output:

💰 Wallet Profile · 9aB7...Kzm2
Label: "@alpha_caller"
Balance: 312.4 SOL · Portfolio: $680k
Funded by: Kucoin · 1.2 SOL

PnL 7d:  +$42k (71% WR · 108 trades)
PnL 30d: +$180k (68% WR · 214 trades)

REST API

curl -H "X-API-Key: $NOESIS_API_KEY" \
  "https://noesisapi.dev/api/v1/wallet/9aB7...Kzm2"

MCP

wallet_profile(address="9aB7...Kzm2")

or prompt:

Give me a full profile of Solana wallet 9aB7...Kzm2: SOL balance, 7d and 30d PnL, win rate, trade counts, and identity labels.

SDKs

TypeScript

import { Noesis } from "noesis-api";
const noesis = new Noesis({ apiKey: process.env.NOESIS_API_KEY! });
const w = await noesis.wallet.profile("9aB7...");
// Pick the period you want from the response:
console.log(w.profit_stat_30d.winrate, w.profit_stat_7d.realized_profit);

Python

from noesis import Noesis
noesis = Noesis(api_key=os.environ["NOESIS_API_KEY"])
w = noesis.wallet.profile("9aB7...")
print(w["profit_stat_30d"]["winrate"], w["profit_stat_7d"]["realized_profit"])

Rust

let client = noesis_api::Noesis::new(api_key);
let w = client.wallet_profile("9aB7...").await?;

Understanding the output

How to combine /walletchecker with other commands

/walletchecker is the classifier at the end of almost every Noesis chain.

Chain 1 — Classify a suspicious holder

/topholders <mint>                    suspicious large holder
  → /walletchecker <holder>           profile
  → high WR + high portfolio → smart money
  → fresh + no history → insider

Chain 2 — Validate top trader quality

/besttraders <mint>                   top trader list
  → /walletchecker <top_trader>       confirm 30d PnL and win rate
  → filter out wash-traders (high trade count, near-zero PnL)

Chain 3 — Team wallet reality check

/team <mint>                          get top team wallet
  → /walletchecker <team_wallet>      in profit? in loss?
  → in profit → likely seller; in loss → trapped holder

Chain 4 — Funder identity check

/links <wallet>                       find top inflow source
  → /walletchecker <funder>           profile the funder
  → funder is whale / KOL / protocol = legitimate; fresh wallet = insider chain

When /walletchecker can mislead

Caveats

FAQ

What's a "good" win rate on Solana? Over a month of active trading, 55-65% is solid smart-money territory. 70%+ is exceptional or suspicious (bots, wash traders, or team wallets with front-running). Under 40% on high trade count is bagholder retail.

What's the difference between win rate and PnL? Win rate is how often trades are profitable. PnL is how much. A wallet with 90% win rate making $100/trade is worse than a wallet with 55% win rate making $10k/trade. Use both.

Can /walletchecker detect bots? Bot patterns are implicit: very high trade count, narrow win rate (40-55%), extreme consistency. Combine with /links for coordinated multi-wallet bot farms.

Does /walletchecker work on non-Solana wallets? No. Solana-only today.

Why does portfolio USD sometimes differ from what I see on a block explorer? Three reasons: (1) different pricing sources (Noesis uses GMGN/DexScreener best-pair; explorers may use Jupiter price), (2) live recalculation per call (prices change), (3) some illiquid micro-caps may be priced differently depending on source.

Is /walletchecker rate-limited? It's on the light-endpoint tier (1 req / sec per API key), not the heavy tier. Much higher throughput than /links or /team.

Related guides