How do you find a profitable Solana wallet to copy trade?

To find a Solana wallet worth copy trading, filter the leaderboard's lotto wins and bots using behavioral labels: trader type, badges, and bot share.

Conyr ResearchResearch·2026-06-12·7 min read·Guides·Updated 2026-06-13

Every day someone posts a PnL screenshot, gains a few thousand followers, and a few hundred of them start copying the wallet. Most of those copiers lose money, and not because the screenshot was fake. It was probably real. The problem is that a PnL number tells you almost nothing about how it was earned, and how it was earned is the only thing that predicts whether it happens again. Wallet labels exist to answer that question before you commit.

The usual way to find a wallet worth copying is the leaderboard: sort by realized PnL, copy the top row. That filter has three failure modes baked in. Survivorship: for every wallet up $400K there are hundreds running the same strategy that blew up quietly, and the leaderboard only shows the one that didn't. Lotto wins: a wallet whose entire PnL is one 80x hit on a token it aped early looks identical, in headline numbers, to a wallet that grinds out consistent 30% wins. And bots: a latency-arb bot's track record is repeatable, just not by a human clicking buttons two seconds behind it.

Behavioral classification is the fix. Conyr parses 20M+ Solana swaps per day on its own node, computes realized PnL with FIFO cost-basis accounting on every closed position, and derives labels from those outcomes. 950K+ wallets carry a label set in the live window. Labels are statistically derived from what the wallet did, never self-reported. This post is the filtering method: the label taxonomy, and how to read it before you copy.

The four axes of a wallet label#

Every classified wallet gets a position on four core axes, returned in the labels payload alongside the quantitative metrics that back them.

AxisValuesWhat it tells you
Trader typeSCALPER, DAY_TRADER, SWING_TRADER, POSITION_TRADERThe wallet's hold-time regime. A SCALPER's edge lives in seconds and dies when you copy it with any delay; a SWING_TRADER or POSITION_TRADER is far more forgiving to follow.
PerformancePROFITABLE, BREAK_EVEN, UNPROFITABLE, UNRATED, BANNEDOutcome tier over closed positions. UNRATED means not enough history to judge, so treat it as unknown, not neutral. BANNED means excluded from ratings entirely.
Size classSHRIMP, FISH, SHARK, WHALETypical position sizing. A WHALE's entries move thin pools; copying one into a low-liquidity token means buying their slippage.
Exit styleFULL_EXITER, DCA_OUT, PARTIAL_TAKER, MIXEDHow the wallet realizes gains. A DCA_OUT wallet's "exit" is a process, not an event, so copying its first sell tells you little.

The axes matter together, not alone. PROFITABLE + SCALPER is a wallet you can learn from but probably cannot follow. PROFITABLE + SWING_TRADER + SHARK is the profile most copy-trading setups implicitly assume they found.

Badges: how the PnL was earned#

On top of the axes sit trade badges: behavior-derived flags computed from closed-position outcomes. This is where the lotto-winner and the grinder, identical on a leaderboard, separate cleanly.

BadgeWhat it signalsHow to weight it
CONSISTENT_WINNERWins recur across many positions, not one spikeStrong positive: the closest thing to a repeatability signal
ELITE_TRADERTop tier across the backing performance metricsStrong positive, especially combined with a long history
VETERAN_WINNERProfitable over an extended activity spanPositive: survived more than one market regime
RUNNER_KEEPERLets winners run instead of clipping every gainPositive if you want upside capture; expect drawdown tolerance
STOP_LOSS_USERExits losers at consistent levelsPositive: risk discipline shows up in the fills
LOSS_CUTTERCuts losing positions quicklyPositive: small losses are a feature, not a flaw
CONFIDENCE_SIZERSizes up when conviction is highContext-dependent: their PnL concentrates in trades you may size differently
DIAMOND_HANDSHolds through deep drawdownsNeutral: only copy this if you have the same stomach
PAPER_HANDSExits fast on small movesCaution: you will always be later than they are
BAG_HOLDERRides losers down without exitingNegative: the downside behavior you'd be importing
LOTTO_PLAYERPnL dominated by a few outsized hitsHeavy discount on the headline number: the next lotto ticket is not scheduled

A second family, identity badges, describes infrastructure rather than behavior: HFT_BOT, FLASH_BOT, and ARB_BOT flag automation patterns whose edge is latency you do not have. WASH_TRADER means the volume itself is suspect, which disqualifies it for copy purposes. TOOL_* and DEX_SPECIALIST_* identify the frontend that placed the trades and venue concentration. TOKEN_CONCENTRATED warns that results cluster in a few tokens. And the funding flags (FRESH_FUNDED_6H, FUNDED_BY_FARM, ROOT_CEX, ROOT_DEX_AUTH) come from provenance tracing, covered below.

How labels stay honest#

A self-reported track record is a claim. A label is a measurement, and the difference shows up in three properties.

First, labels are computed from actual fills. Every closed position feeds FIFO cost-basis PnL, with entry and exit signatures included, so any number is verifiable on-chain. Labels update continuously as new trades close. No nightly batch, no manual refresh. When a wallet's behavior shifts, the label shifts with it, and the change streams over the wallet:{addr}:labels WebSocket channel, deduplicated so subscribers only see real state changes.

Second, the accounting is defended against the standard tricks. Flash swaps (same wallet, same token, within two slots or one second) are filtered out before they can fabricate PnL, and trades held two seconds or less get flagged as bot-like. A wallet cannot wash its way into CONSISTENT_WINNER.

Third, automation is its own axis rather than a hidden confounder. Every labeled wallet carries an automation_label and a bot_share, the fraction of its activity that looks automated. A wallet with bot_share: 0.05 and a wallet with bot_share: 0.9 can post the same returns, but only one of them is doing something a human can replicate. Screenshots never disclose this. Labels do.

A checklist before you copy a wallet#

Copy trading risk is mostly evaluation risk. The trade you copy is rarely the problem; the wallet you chose to copy is. A practical pass, in order:

  1. Sample size first. Check total_trades and the activity span. A 90% win rate over 11 trades is noise. UNRATED means come back later.
  2. Trader type vs your latency. If the wallet is a SCALPER, stop here unless your execution is automated and fast. SWING_TRADER and POSITION_TRADER styles survive copy delay.
  3. Badge profile over headline PnL. CONSISTENT_WINNER with STOP_LOSS_USER beats a bigger number carrying LOTTO_PLAYER or BAG_HOLDER. You are importing the behavior, not the screenshot.
  4. Automation check. High bot_share or an HFT_BOT / ARB_BOT identity badge means the edge is infrastructure. Admire it, do not follow it.
  5. Funding provenance. Where did the wallet's SOL come from? ROOT_CEX with a few hops is the normal shape. FRESH_FUNDED_6H means the track record cannot be older than the funding; FUNDED_BY_FARM means the wallet belongs to a distribution pattern, not a trader. The provenance write-up covers how the trace works.
  6. Context on what they are buying. A skilled wallet entering a token whose float is held by coordinated clusters is still walking into a rug. Check the token's buyer quality and bundle summary before mirroring an entry; the bundle-detection post explains what those clusters look like.

None of these checks require trusting anyone's word. Every one is a field in an API response.

Pulling labels from the API#

The full label set, 45+ fields, is one call on Layer 2 ($75/mo, tier details here):

curl -H "Authorization: Bearer $CONYR_API_KEY" \
  "https://api.conyr.ai/v1/wallet/7xKXtg.../labels"
{
  "wallet": "7xKXtg...",
  "trader_type": "DAY_TRADER",
  "performance_level": "PROFITABLE",
  "size_class": "SHARK",
  "exit_style": "DCA_OUT",
  "automation_label": "ORGANIC",
  "bot_share": 0.05,
  "primary_terminal": "photon",
  "primary_dex": "raydium",
  "funded_by_farm": false,
  "root_source": "Binance",
  "provenance_hops": 3,
  "trade_badges": ["CONSISTENT_WINNER", "RUNNER_KEEPER", "STOP_LOSS_USER"],
  "identity_badges": ["ROOT_CEX", "TOOL_PHOTON"],
  "total_trades": 342,
  "win_rate_pct": 63.0,
  "total_pnl": 12450.32,
  "sharpe_ratio": 1.8,
  "profit_factor": 2.1
}

Reading this one top to bottom: a day trader, profitable over 342 closed positions, shark-sized, scales out of winners. Organic, 5% bot share. Trades through Photon, mostly on Raydium. Funded from Binance, three hops back, no farm flag. Behavior badges say the wins recur, winners get room to run, losers get cut. Win rate 63%, profit factor 2.1, Sharpe 1.8 backing it all up. That is a wallet worth a deeper look, and the entire read took one request. Responses are cached for 60 seconds, and the same payload streams live over wallet:{addr}:labels for wallets you track.

For a taste before paying, the free tier exposes wallet quality in aggregate: GET /v1/token/{mint}/buyer-quality classifies a token's recent buyers into tiers, from elite_smart_money down to bot_operated, farm_funded, and unrated_new, with a smart_money_signal summarizing how much of the volume comes from profitable organic wallets. It is the label system pointed at a token instead of a wallet, and it costs nothing. Keys are self-serve now; the launch post covers setup.

Agents get the same data without glue code: the hosted MCP server exposes around 40 tools (labels, PnL, provenance, similarity, buyer quality) over the same API keys and tiers, so a wallet-vetting loop in Claude or Cursor is a config block away.

Where to go next#

#wallet-labels#copy-trading#wallet-analysis#solana
// Written by

Conyr Research

Research

x.com/ConyrAI
// The pipeline behind these posts

Run these reads against the live chain.

Get an API key
Read the docs

Related dispatches

012026-06-12
Updates

Self-serve API keys are live: pull real-time Solana intelligence in minutes

Conyr API keys are now self-serve — create a key, pick a tier from free to $149/mo, and start querying live Solana wallet intelligence.

2 min
022026-06-12
Research

Solana bundle detection: how coordinated buying actually works, and how to catch it in real time

Coordinated buying hides token supply across dozens of Solana wallets. Here is why holder pages miss bundles, and how Conyr detects them in real time.

8 min
032026-06-12
Research

Tracing Solana wallet funding provenance: what the first SOL transfer reveals

Trace any Solana wallet's funding lineage up to 20 hops back to 230+ curated CEX hot-wallet roots, and see what fresh-wallet patterns fall out.

7 min