Every Solana wallet is already public. Why most trackers still cap you at a short list, and how to find and read the wallets worth following.
A free Cielo account will track 50 Solana wallets. RayBot's free tier tracks 10, and so does Nansen's free watchlist. On September 26, 752,836 different wallets swapped tokens on the Solana launchpads and pools Conyr covers.
One r/solana user went looking for a Telegram bot that could follow around 400 wallets and wrote: "Most bots I've found are capped at around 20-50 wallets, even with premium plans." Some paid plans now go well past that, but Solana itself has no such limit. All 752,836 of those wallets are public, and so is every swap they make. You can open any of them right now without adding it to anything.
Opening one takes seconds on several tools, Conyr included. The slow part is deciding which ones deserve your attention, and reading them without fooling yourself.
A Solana wallet address is a public key, and each transaction it signs lands in a ledger anyone can read. Paste an address into Solscan and the whole history is there: swaps, transfers, balances. You don't need a login or the owner's permission.
Tracking is reading that record, plus getting told when something new lands in it. None of it touches the wallet. A tracker needs an address and nothing else, so if one asks for your seed phrase, or wants you to connect your own wallet just to watch someone else's, close the tab. "Does it take your seed phrase when you hit 'connect portfolio' and just paste a wallet address?" one user asked on r/CryptoCurrency. The reply was "No. just the address," followed by an all-caps warning never to hand over a seed phrase for any reason.
Your own wallet is as public as anyone else's. A trader on r/solana noticed someone copying their buys at three times their size, moved to a fresh wallet, and reported back: "He follow to my new wallet." They didn't say how the copier found it, but the transfer that funded the new wallet was as public as their trades.
| Tracker | How you add wallets | Wallet cap, free / paid | Price | Alerts go to |
|---|---|---|---|---|
| Cielo | Paste, CSV import, or follow public lists | 50 free; 200 or 1,000 paid (Solana) | Free; $59 or $199 a month, billed annually | In-app feed, Telegram, Discord |
| RayBot | Telegram /add, bulk paste | 10 free; up to 5,000 paid | Free; 0.08 to 4 SOL a month | Telegram and web app; webhooks from Hobby, Discord channels from Pro |
| Nansen | Watchlists and Smart Alerts | 10-wallet watchlist and 1 alert free; unlimited on Pro | Free; Pro $49 a month billed annually, $69 monthly | Telegram, Discord, Slack, webhook |
| GMGN | Follow from a wallet page, JSON import | 100 or 2,000 (its docs disagree) | 1% trading fee | In-app, browser, app push, Telegram |
| Axiom | Add or import in the tracker panel | 10,000 (announced July 2025) | Trading fees from 1% | In-app |
| Photon | Add, or import a pasted snippet | 500 (announced August 2025) | Trading fees | In-app, with sound |
| Birdeye | Named watchlists | 1 watchlist free; multiple on PRO (wallets per list not stated) | Free; PRO $45 a month | Email on free; Telegram, Discord, email on PRO |
| Arkham | Alerts on an address or a whole entity | No wallet limit, per a 2023 post | Free | Email, Telegram, Slack, webhook |
| Solana Tracker | Paste any address, no login | No watchlist (lookup only) | Free | None per wallet; paid data stream |
Each cell comes from the vendor's own docs, pricing page, or announcements, checked on 2026-09-26. Axiom's 10,000 comes from a July 2025 post; its docs give no figure, and its July 2026 tracker update didn't repeat it. GMGN's docs say 100 on one page and 2,000 on another. Only Nansen publishes a measured alert delay. Its help center gives Solana alerts as 10 to 20 seconds. The others say "real-time," "instant," or "zero delay," and GMGN claims "millisecond-level monitoring speed," but none of them publishes a number.
Almost any tool in that table will show you a wallet's history if you paste its address, and Nansen, Arkham, and Solana Tracker are built around that. What most of them ration is the live part, the wallets whose trades get pushed to you as they happen, by wallet count, alert count, or price. That's what the 400-wallet user was after. Arkham is the exception on count. It has said there's no upper limit on tracked wallets, though it rate-limits notifications.
The field keeps changing. BullX has shown a "Trading on this version of the app has been disabled" banner since June 2026. Step Finance wound down in February 2026, after its treasury wallets were compromised in January. pump.fun bought Kolscan, a leaderboard of influencer wallets, in July 2025, and Padre that October; Padre now runs as pump.fun's Terminal. Nansen opened its paywalled Solana data to free accounts in January 2026 and now markets a free Solana wallet tracker.
The cap comes from plumbing. A tracker's costs grow with how many wallets its users follow multiplied by how often those wallets trade. Wallet caps, and plans priced by wallet count, keep that bill in check. Solana's standard RPC, the interface apps use to talk to the chain, gives a tracker two ways to watch a wallet, and both cost something per wallet.
The push route is a WebSocket subscription. logsSubscribe takes a mentions filter, and that filter accepts exactly one address. Send two and mainnet replies Invalid Request: Only 1 address supported. Four hundred wallets means four hundred subscriptions, each delivering raw logs rather than trades.
The pull route is polling. getSignaturesForAddress returns up to 1,000 signatures for one address, each with a slot and a timestamp but nothing about what the transaction did, so each new signature costs a second call to getTransaction. Solana's own docs call repeated polling "inefficient". The public endpoint allows 40 requests per 10 seconds per IP for any single method, per the docs. From one IP, a single pass over 1,000 wallets takes about four minutes, before any of those getTransaction calls.
Paid providers make it faster and charge for it. Helius bills 1 credit per webhook event it delivers, and 100 credits each time you edit the address list. Delivery has its own bottleneck. RayBot's docs note that Telegram lets a bot send no more than 30 messages a second. When 10,000+ users track the same popular wallet, they warn, "Telegram creates a queue during activity spikes."
None of this is a limit of the chain. A validator, one of the machines that run the network, can stream the transactions it processes to a Geyser plugin. Yellowstone gRPC, the streaming plugin Triton maintains and most gRPC providers support, sends every transaction except validators' own votes to any client that asks with vote: false. Since August 2026 its transaction stream also takes compressed address filters; Triton documents one covering 2 million accounts in about 3 MB.
The expensive part is turning that data into trades. A raw transaction is a list of account indexes and opaque instruction bytes, and every DEX program (Solana's word for a smart contract) encodes a swap its own way. Aggregators like Jupiter pile on: its router does "multi-hop, multi-split swaps across Solana DEXes," and each leg shows up as its own step inside the transaction. Count those legs naively and one trade becomes three, or a price spike appears that nobody paid.
The alternative is to pay that cost once, for all wallets, by decoding the swaps in each transaction as it lands and keeping a running position for each wallet as it buys and sells. After that, any wallet is a lookup, and "which wallets?" turns into a search instead of a list you maintain by hand.
The Solana Foundation's data dashboard counted 382 million transactions on September 25. Of those, 57% were validator votes, which leaves about 165 million sent by people and their bots, 113 million of which succeeded.
Conyr works this way. A self-hosted Yellowstone gRPC node streams every non-vote, successful transaction. Conyr decodes swaps on the launchpads and pools where memecoins trade: pump.fun, PumpSwap, Boop, four Raydium programs (AMM v4, CPMM, CLMM, and LaunchLab), and Meteora's DLMM and DAMM v2. It also rebuilds trades routed through Jupiter, DFlow, Titan, OKX, or Raydium's router from the wallet's net token flows, whichever pool the route passed through. Wallets trading there get FIFO positions, where each sale is matched against the oldest buys first, and realized PnL, the profit or loss on what has actually been sold. Some trades are left out on purpose, as the limits section explains, and behavioral labels arrive once a wallet has traded enough to judge. Nobody has to add a wallet anywhere, and there's no cap on which wallets you can look up.
Nansen, Arkham, and Solana Tracker also index every wallet. They differ in what they compute from the trades, and one difference, how a win gets counted, changes which wallets look good.
Conyr's numbers for the four full weeks from August 30 to September 26, 2026 (UTC):
| Measure | Value |
|---|---|
| Swaps decoded | 473,957,300 |
| Wallets that swapped at least once | 9,542,153 |
| Tokens traded | 1,285,549 |
| Wallets that traded on only 1 of the 28 days | 7,254,788 (76%) |
| Median swaps per wallet | 2 |
| Share of all swaps made by the busiest 1% of wallets | 77.3% |
Most wallets aren't worth watching. The busiest 1%, 95,421 wallets, made 77% of all swaps, and 26,325 of them carry a bot or malicious-wallet label. Those wallets alone made 171 million swaps, 36% of everything Conyr decoded in the window.
Lists also go stale fast. Of the 752,836 wallets that traded on September 26, 288,548, or 38%, hadn't swapped on those venues in the previous 27 days. Across the window's final week, two thirds of active wallets hadn't traded in the three weeks before it. Some of that is new traders arriving. Some is people rotating wallets on purpose, and those can be the wallets you'd most want to see.
In Conyr's label snapshot on September 27, 1.7 million wallets had enough closed trades to rate, and 74% of them came out unprofitable over the history Conyr has for them. Only 318,575, or 18.7%, cleared the EARNER bar: realized profit, positive cash flow, some losing trades on record, a profit factor (gross profit over gross loss) between 1.2 and 150, and a trade in the last 30 days.
All five methods below run free on Conyr. The leaderboard, the live feed, token pages, and search work without an account; Wallet Overlap and the fuller Smart Wallets roster need a free one.
A wallet that got into several winners early is a better lead than one that hit once. Any token page on Conyr has a Top Traders tab, and its Best Overall sort ranks bundled, bot, and farm-funded wallets (fresh wallets seeded in batches) lower and hides flagged ones.
By hand, that means opening Top Traders on Dexscreener for each token and pasting addresses into a spreadsheet. Wallet Overlap does it across tokens. Give it two or three and it returns the wallets that bought all of them. You can limit it to buys in the first 5 to 60 minutes after each token's first recorded trade, and to wallets that took a profit on them. The early-buy index only reaches back 30 days, so that filter works best on recent launches. It finds buyers, including wallets that have since sold, which is close to what one r/solana user wanted. They went hunting for every wallet holding two specific coins, hit Solscan's limits, and wrote "i'm confused how people do this." The free tier allows three tokens a scan and three scans a day; Pro allows 10 tokens a scan and 100 scans a month.
The leaderboard ranks wallets by realized PnL over windows from 1H to 30D. The windows follow UTC hours and days, so 24H means since midnight UTC. Wallets Conyr has flagged are dropped, along with wallets that sold a token now flagged as a rug or high risk during that window. Bots stay in, and the Most Active preset says so outright: "Expect bots up here." Check the labels column before you copy anything off it.
Smart Wallets is a roster rebuilt hourly from 14 days of settled swaps. A wallet has to be profitable in cash, win on more than one token, and trade on several different days, among other rules. Bot signals, suspicious funding, same-slot bundles (wallets buying in the same block), and synchronized entries all get screened, and related wallets collapse into a single entry. Anyone can see the top six; a free account shows up to 100.
The Top tab of the live feed streams trades from up to 50 of the most profitable wallets over a window you pick: 15 minutes, 1, 6, or 12 hours, or 7 days. Flagged wallets and wallets that cashed out of rugs never make the list, and bots and farm-funded wallets are dropped from it.
Type an @handle into Conyr's search and you get the wallets publicly attributed to that X or Telegram account. Treat that as an attribution rather than proof of ownership. It's also the wallet a KOL (crypto influencer) knows people are watching, so it may not be where they buy first. Insiders play the same game. Warning people off copying "dev wallets," one r/pumpfun commenter wrote that "they just make a new set of wallets and get in on launches long before you'll get any sort of good profit off of copying their stale 'trade'."
A big number on a leaderboard tells you a wallet made money. It says nothing about how, and how is the better guide to whether it happens again. Paste any address into Conyr's search to open its wallet page (no account needed for this).
Start with the win rate, because there are two ways to count one. A common way is per sale. Nansen's API, for example, describes its win_rate field as the "Number of sales where price of the token was higher than cost basis," cost basis being what the wallet paid. That's a reasonable unit, but a wallet that sells one winner in five pieces books five wins, where a per-position count gives it one. Conyr computes both, per exit and per position. For most wallets they land within five points of each other, and the median gap in Conyr's data is zero. But of 187,584 rated wallets showing a win rate of 60% or better per exit, 17,331 win fewer than half of their positions.
On the wallet page, open More performance metrics. The Rate Gap row compares the two, its deep data view labels them Paper and Real, and it flags a per-exit rate that runs well above the per-position one. It needs 10 closed positions. The 194,610-wallet study covers the method and what each rate predicts.
Then ask whether it was one lucky token. "How do you separate wallets that just got lucky on one or two big trades from wallets that are actually consistently good?" someone asked on r/SolanaMemeCoins. Two numbers help. One is the spread of returns per position, which the wallet page draws as a strip under More performance metrics. The other is how much of the profit came from the single best token, which you can work out from the By token list on the Trades & positions tab. Smart Wallets rejects any wallet whose best token accounts for more than 75% of its profit, which is a decent rule to borrow.
Check whether a person is even behind it. Conyr labels a wallet's automation (organic, bot, or mixed) from how its swaps execute and, after five or more positions with a sale, its trader type. A SCALPER, in those labels, takes its first exit within five minutes on at least three out of four positions. Profitable or not, you can't follow that by hand.
Look at where the money came from. The funding section traces a wallet's SOL back through as many as 20 wallet-to-wallet transfers toward a curated list of known origins, mostly exchange hot and cold wallets plus on-ramps, custody services, and similar infrastructure. A wallet seeded by a funder that had just sprayed SOL into a burst of fresh wallets deserves more suspicion than an old wallet funded off an exchange.
Last, look at who it trades with. The Connections tab has three views. Copy patterns shows who buys right after this wallet and whom it follows. Bought alongside lists wallets that keep turning up in the same tokens, and Wallet cluster groups wallets linked by a shared funder or by trading in lockstep. If a profitable wallet shares a funder with a dozen others that all buy in the same slots, you may be looking at one wallet in a fleet, like the one the extraction-crew teardown takes apart.
Star a wallet on its page (this needs a free account) and it joins the Watchlist tab of the live feed, which streams its trades as they land.
For notifications, open Alerts and add a delivery channel under My alerts first, because a rule can't be saved without one. Then choose Create alert, pick the Swap executed trigger, and add a Wallet condition; Side narrows it to buys or sells, and Size ($) sets a minimum. The Position closed trigger works the same way for exits, with PnL ($) and PnL (%) conditions. It fires each time one of the wallet's buys is fully sold, so you hear when a single buy closes $5,000 up and skip the small stuff.
Channels include in-app and browser push notifications, and the page also lists Telegram and Discord. Alerts are free with an account. Each rule watches one wallet, and you can make as many rules as you like. A rule can fire 10 times in a burst and then once every 10 seconds, which keeps a wallet that trades 200 times a minute from burying you. If the throttle gets in your way, the API streams a wallet's position and PnL updates without one, though it has gaps of its own, covered below.
Tracking shows you what a wallet did. It can't hand you the same trade, starting with the price. By the time you see a buy, it has already moved the pool's price, and so has everyone faster than you. "Even if you land your trade within the same block your price will be adjusted based on the new pool amounts," one commenter explained in an r/solana thread on copy trading. The original poster replied that it was "the response I needed."
Being faster doesn't fix it. In April 2026 another trader described copying from a colocated server with a dedicated node, gRPC, and Jito bundles, firing each copy within the same slot or the next. They still reported that "every single configuration of mine ends up around -3% to -8% PnL with maybe a 25-30% win rate. Meanwhile the wallets I'm copying are still printing 70%+ win rates."
The wallets you follow can watch you back. Back in that copy-trader thread, another trader wrote: "Once my wallets acquire followers I either create new wallets, or just ape fresh launches and dump on them once they copy." Wallets like those are part of the 38% from earlier.
Conyr has its own limits. It doesn't backfill. Its wallet history currently starts in late July 2026, and anything a wallet did before Conyr saw it isn't there. A restart also leaves a short gap, because the stream resumes at the live tip. A direct trade on a venue Conyr doesn't cover, an Orca pool for instance, doesn't show up unless an aggregator routed it. Some trades are kept out of position accounting on purpose, such as arbitrage legs, same-transaction round trips, and swaps on tokens that have rugged. And the labels only describe behavior Conyr detected.
If you'd rather build the watcher yourself, the same data is on the Conyr API. The Layer 2 plan, at $75/mo, covers wallets. Any address works, and you don't register anything first.
GET /v1/wallet/{address}/quality returns both win rates and the gap between them:
curl -H "Authorization: Bearer $CONYR_API_KEY" \
"https://api.conyr.ai/v1/wallet/{address}/quality"
{
"wallet": "...",
"rated": true,
"performance_level": "EARNER",
"trader_type": "DAY_TRADER",
"closed_positions": 214,
"position_win_rate_pct": 41.2,
"raw_exit_win_rate_pct": 63.8,
"win_rate_inflation_pts": 22.6,
"profit_factor": 1.9,
"realized_pnl_usd": 18340.5
}
That's trimmed; the full response also has ROI percentiles and trade badges, among other fields. rated turns true at 10 closed positions, and win_rate_inflation_pts never drops below zero. For a wallet Conyr holds no snapshot of, the endpoint returns a literal null, so check before reading fields.
For live watching, the socket at wss://api.conyr.ai/ws takes per-wallet channels. This watches two wallets for new buys and realized sells:
import WebSocket from "ws";
const wallets = ["<WALLET_1>", "<WALLET_2>"];
const ws = new WebSocket("wss://api.conyr.ai/ws", {
headers: { Authorization: `Bearer ${process.env.CONYR_API_KEY}` },
});
ws.on("error", (e) => console.error(e.message)); // bad or Free-tier keys fail before the upgrade
ws.on("open", () => {
ws.send(JSON.stringify({
op: "subscribe",
channels: wallets.flatMap((w) => [`wallet:${w}:positions`, `wallet:${w}:pnl`]),
}));
});
ws.on("message", (raw) => {
const msg = JSON.parse(raw);
if (!msg.channel) {
if (msg.op === "error") console.error(msg.message); // e.g. a channel your tier can't use
return; // subscribe acks and pongs
}
if (msg.channel.endsWith(":positions")) {
for (const u of msg.data.updates) {
if (u.op === "upsert" && u.direction === "buy") {
console.log(`${msg.data.wallet} bought ${u.mint}, cost basis now $${u.cost_basis_usd}`);
}
}
} else if (msg.channel.endsWith(":pnl")) {
const p = msg.data;
if (p.position_type === "ARBITRAGE") return; // bot rows share this channel
console.log(`${p.wallet_address} realized ${p.realized_pnl_usd.toFixed(2)} USD on ${p.token_mint}`);
}
});
A few things to know before you rely on it. Position updates are coalesced per wallet and token every 50 milliseconds, so each message carries only the latest state. Two quick buys arrive as one update, and a buy followed at once by a sale can arrive as the sale alone. Amounts, prices, and USD values arrive as strings; decimals, seq, slot, and ts are numbers. Buys that Conyr keeps out of position accounting never produce an update. The pnl channel sends one message for each earlier buy a sale draws down, partial exits included, so one sale can arrive as several messages, and a sale Conyr holds no cost basis for sends none. It also carries arbitrage rows for bots, which is why the handler skips them. A fresh socket gets live messages only, with no replay and no delivery guarantee. The Layer 2 plan allows 50 channels per connection and 20 connections per key, so at two channels a wallet you can watch 500 wallets per key. If an agent is doing the watching, the same wallet reads are tools on the hosted MCP server.
Run these reads against the live chain.
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.
Solana terminals charge 0.5% to 1% per side. How to build your own: a free chart library, Jupiter for execution, and the Conyr API for the live tape.
A temporal study of closed-FIFO-lot win rate, exit-row rate, and subsequent cumulative gross realized profitability across 194,610 eligible Solana wallets.