

YY·Mar 26, 2026
First guess
My assumption was simple: organic score is a composite of the obvious stuff. Take holder count, trading volume, and liquidity, normalise them, spit out a number between 0 and 100. More holders and more volume and more liquidity = higher score. Weighted average vibes. To test this I pulled a spread of tokens from the Tokens V2 API and compared their stats side by side.| Token | Organic Score | 24h Buy Volume | Holders | Liquidity |
|---|---|---|---|---|
| SOL | 98.9 | $7.36B | 3.8M | $710M |
| Fartcoin | 96.5 | $4.66M | 165K | - |
| JUP | 93.6 | $1.66M | 850K | $3.2M |
| TRUMP | 85.3 | $10.4M | 650K | - |
| ASPEN | 45.1 | $1.61M | - | - |
Hidden in the response
Here’s what I should have noticed a long time ago. Every stats window in the Tokens V2 response has two sets of volume numbers. There’sbuyVolume and sellVolume - that’s total volume. And then right below, buyOrganicVolume and sellOrganicVolume.
I’d been looking at buyVolume this entire time. Let me show you what the organic numbers actually look like.
| Token | Score | 24h Buy Volume | 24h Organic Buy Volume | Organic Ratio |
|---|---|---|---|---|
| SOL | 98.9 | $7,357,875,684 | $36,584,166 | 0.5% |
| Fartcoin | 96.5 | $4,656,639 | $537,810 | 11.5% |
| JUP | 93.6 | $1,658,934 | $226,044 | 13.6% |
| TRUMP | 85.3 | $10,401,625 | $73,959 | 0.7% |
| ASPEN | 45.1 | $1,606,055 | $1,034 | 0.06% |
How the score actually works
This is where I went beyond the docs. The organic score is a composite of several metrics - organic volume, organic holders, organic traders, organic buyers - each contributing to the final number. Nothing surprising so far. But the way they’re combined is what makes it work. Each component is scored in a way that rewards early growth heavily. Going from 10 organic buyers to 100 matters a lot more than going from 10,000 to 10,100. Once you’re past a certain scale, additional organic activity adds less and less to the score. This is why SOL and USDC both sit near 100 - at their scale, the differences flatten out. But here’s the thing I didn’t expect. The scores are normalised against the rest of the ecosystem. Your token’s organic metrics aren’t measured in isolation - they’re measured relative to what other tokens are doing. The system looks at where the top of the distribution is and scales accordingly. This leads to an important subtlety. One of the engineers who built the scoring system put it this way: the system doesn’t try to capture every single organic wallet on Solana. Instead, it focuses on wallets it can confirm are organic. It might miss some, which means the absolute numbers might undercount. But because every token is measured the same way, the relative ordering holds. If token A scores higher than token B, you can trust that token A has more confirmed organic activity than token B. The score isn’t saying “this token has X amount of organic activity.” It’s saying “this token is more organic than that one.” That distinction matters.
What makes a wallet “organic”
This is the part I couldn’t reverse-engineer from the API. Everything I’ve described so far - organic volume, organic buyers, organic traders - all of it depends on one upstream classification: is this wallet organic or not? The entire scoring system sits on top of that determination. The classification is binary. A wallet is either organic or it isn’t. And it’s determined per-wallet, not per-trade. When a swap happens, the system checks the signer against this classification. If the wallet is organic, the volume counts towards organic metrics. If not, it only counts towards totals. How does a wallet get classified? The system detects trading through known accounts/pipelines or automated platforms - the tools people use for sniping, copy-trading, and automated execution. These accounts conduct trades through identifiable on-chain patterns, and the system recognises them. There are more of these accounts being tracked than I expected. If a trade doesn’t go through one of these known channels, the wallet is considered organic. It’s a conservative approach - rather than trying to identify every organic wallet through behavioural analysis, the system identifies the non-organic ones and treats the remainder as organic. That’s a lot of machinery behind one number. It’s been running for over a year now, and there are still a lot of improvements to be made and experiments to try. The team knows this. The wallet classification could be more dynamic, the detection could be broader, and there are edge cases that haven’t been addressed yet. But the foundation is solid enough that it powers not just the score, but several other systems across Jupiter.Three numbers that sound the same and aren’t
While I was in the response, I noticed something else I’d been ignoring. Every stats window has three different trader counts:| Metric | SOL (24h) | TRUMP (24h) | ASPEN (24h) |
|---|---|---|---|
numTraders | 812,709 | 2,947 | 3,034 |
numOrganicBuyers | 12,944 | 52 | 11 |
numNetBuyers | 63,009 | - | 1,516 |
numTraders is every unique wallet that traded the token in the window - buyers and sellers, bots and humans, everything. It’s the biggest number and the least useful one for measuring genuine interest.
numOrganicBuyers is the count of organic wallets that are net buyers in the window - meaning their total buys exceeded their total sells. This isn’t just “organic wallets that bought something.” It’s organic wallets that bought more than they sold. That’s a tighter signal. When a partner asks “is there real interest in this token,” this is the number.
numNetBuyers is the same concept - wallets where buys exceeded sells - but across all traders, not just organic ones. It’s a broader sentiment indicator. Directionally it tells you whether the market is accumulating or distributing, but it’s noisier because it includes bots and market makers.
Look at SOL: 812,709 traders, but 12,944 organic net buyers. That’s 1.6% of traders classified as organic buyers. For TRUMP, it’s even starker - 2,947 traders but only 52 organic buyers. Fifty-two real people, net buying, in $10.4 million of volume.

Where organic score shows up when you’re not looking
I initially thought organic score was a Tokens V2 thing. It’s not. It’s infrastructure that runs across multiple APIs. Price API. In Anmol’s blog, there’s a section on heuristic filters - the system that decides whether a price is trustworthy enough to serve. It checks liquidity depth, trading patterns, holder distribution. A token with poor organic metrics doesn’t just get a low score in the Tokens API. It can get excluded from the Price API response entirely. When a token is “missing” from the Price API, organic score is one of the reasons. Verification. Jupiter’s token verification has evolved from a manual GitHub repo with 4,800 pull requests reviewed by hand, to community-maintained lists, to a data-assisted system. Organic score is a core input for verification. When tens of thousands of new tokens are created every day, you can’t have humans research every token. The score is part of how we do verification today. One metric. Used in different ways. If you’re building on Jupiter and only looking at organic score as a display field in a token list, you’re missing the point. It’s the trust layer that decides whether a token gets priced, gets verified, and gets traded.Things worth knowing if you’re integrating
On “recent” tokens. The/tokens/v2/recent endpoint returns tokens by first pool creation time, not token mint time. A token can be minted weeks before it gets its first liquidity pool. “Recent” on Jupiter means “recently became tradeable” - which is actually the thing you care about. Fresh tokens will have volatile organic scores because there isn’t enough history. Treat early scores with caution.
Score vs. label. The API returns both organicScore (a float, 0-100) and organicScoreLabel (high, medium, or low). The label buckets are wide. Two tokens can both be “medium” and be very different in practice. If you’re building any kind of filter or ranking, use the raw score.
The toporganicscore feed. You can query /tokens/v2/toporganicscore/5m to get tokens ranked by organic score in the last 5 minutes. This filters out the evergreen tokens that would always dominate. It’s basically a “what tokens have the most genuine activity right now” feed. Underused.
Why I wrote this
Now when someone asks why their token scores a 23, I can actually walk through it. The volume might look healthy, but how much of it is organic? How many unique organic buyers are there versus total traders? What does the wallet classification say about the market around this token? The score is a number. But behind it is a system that’s watching every trade on Solana and making a call about whether a real person made it. That’s worth understanding, especially if you’re building something that shows this number to other people.api.jup.ag/tokens/v2/search?query=JUP if you want to look for yourself.
Tokens API Guide: Video walkthrough on X