Sybil filtering for Solana

Not everything that shines is a user.

Assay follows the funding trail behind every wallet on your list, groups the ones run by one operator, and shows you the evidence before you cut them.

Sign in with Solana, no email · Every cut explained · Appeals built in

An example assay of a list of 54,152 wallets. Of the twelve rows shown, six are kept and six are cut: five belong to Cluster 0212 (418 wallets, one funder, 6 min), one to Cluster 0388. Totals: 41,208 kept, 12,944 cut, 23.9% of allocation saved.

example_list.csv · 54,152 wallets

Assay complete

# Wallet Allocation Status Evidence
18,4029fQe…Lk3V2,450 Kept
18,4034bNa…v8Rw1,250 Cut Cluster 0388
18,404Ht6m…2pXa3,100 Kept
18,405Dw2c…Ny7E860 Kept
18,4067xKp…Q2mN1,250 Cut

Cluster 0212 · 418 wallets · one funder · 6 min

18,407Bq9s…e4Hc1,250 Cut
18,4083mVt…Z8kD1,250 Cut
18,409Pn5r…w2Ju1,250 Cut
18,410Ej8x…b6Ty1,250 Cut
18,411Kc4g…T9pS1,775 Kept
18,4126Rz2…h3Wq940 Kept
18,413Ua7n…C5fM2,200 Kept
+ 54,140 more rows
Kept
41,208
Cut
12,944
Allocation saved
23.9%

Try it now · live

Check a token before you buy it.

Paste a token mint. Assay reads its top holders, its authorities and its first transfers on Solana mainnet, and shows how much of the top holders’ tokens sits with one linked group. No email, no sign-up, free in beta.

The mint is on the token’s page in your wallet, on its launchpad or on an explorer. A pump.fun or Solscan link works too.

Free while Assay is in beta. Every check reads mainnet when you run it. Signed in, the app keeps the checks you run in a list for that tab.

Open the app

Paste a mint to see its risk card.

Linked share, top holders, mint and freeze authority and a verdict, read live from mainnet in a few seconds.

What we look at

Five signals, each read across a group of wallets, never one wallet alone. One signal proves little. A cluster appears when several point at the same group.

  • Funding trail

    Where each wallet’s SOL came from, and whether many wallets trace back to one source.

  • Timing

    Whether a group of wallets acts as one, inside the same few minutes.

  • Shared exchange deposits

    Whether many wallets send their funds out to the same exchange deposit account.

  • Behaviour patterns

    Whether wallets do the same things, in the same order, again and again.

  • Fee habits

    Whether wallets pay for their transactions the same way, every time.

For agents

Your agent can check a token today.

One HTTP call, JSON back. No key, no account, free in beta. The use case: check a token before your agent swaps into it.

Agent summary

what: Launch risk for a Solana token, read live from mainnet: top holders, wallets linked by direct transfers, mint and freeze authority, a verdict.

call: GET https://www.assayonsol.io/api/launch-risk?mint=<mint> · JSON · no key · free in beta

docs: https://www.assayonsol.io/docs.html · skill https://www.assayonsol.io/agents/SKILL.md · index https://www.assayonsol.io/llms.txt

  • HTTP API

    Live

    curl -s "https://www.assayonsol.io/api/launch-risk?mint=<mint>"

    Works from curl, fetch or any HTTP client. Every field of the answer is in the API docs.

  • Any agent

    SKILL.md

    https://www.assayonsol.io/agents/SKILL.md

    Point your agent at the skill file: when to call, what comes back, the rules. Read SKILL.md.

Use the HTTP API today (curl / fetch); the MCP server and skill package ship when the API leaves beta.

Planned price per call

Beta: calls are free; the x402 flow is the planned paid tier and is not enforced.

  • Launch risk · live GET /api/launch-risk?mint= 0.05 USDCper call, planned
  • List assay · planned opens after the beta 0.30 USDCper wallet, planned
  • Appeal status · planned opens after the beta Freeplanned

Today · one free call

  1. Ask. No key, no account.

    curl -s "https://www.assayonsol.io/api/launch-risk?mint=$MINT"
  2. Read the answer.

    HTTP/1.1 200 OK
    Cache-Control: public, max-age=300
    
    {"mint":"…","name":"…","symbol":"…","verdict":"low | medium | high",
     "linked_share":0.31,"linked_source":"…","linked_wallets":["…"],
     "top1_share":0.06,"top10_share":0.26,
     "holders":996,"holders_more":true,"holders_display":"1,000+",
     "mint_authority":false,"freeze_authority":false,"flags":["…"],
     "coverage":{…},"checked_at":"…","explorer":"…"}
  3. Act on it.

    if (risk.verdict === 'high') {
      // stop, or ask the user before the swap
    }

Planned · the x402 paid tier

When paid plans open, the same call answers 402 Payment Required with its price; your agent pays 0.05 USDC on Solana and resends. Nothing is enforced in beta.

One engine, three products.

Each answers a different question about the same thing: which wallets belong to real people.

For teams before a distribution

Airdrop Assay

Who on this list is a farm?

  • Your full eligibility list, assayed
  • Clusters, each with its evidence
  • A clean list to export
  • Appeals desk for 30 days after claim opens

Opens after the beta

Planned: $0.30 per wallet, first 5,000 free · campaigns from $15,000

For launchpads, terminals and wallets

Launch Risk API

How much of this token sits with one linked group?

  • Linked share: top holders tied by direct transfers
  • Top holder and top-10 share of supply
  • Mint and freeze authority, Token-2022 extensions
  • A verdict per token, in one call

Live · free in beta

Planned: $0.05 per check, 10 a day free · teams from $1,000/month

For funds, accelerators and grant programs

Traction Check

Is this project’s on-chain usage real?

  • Share of activity from linked clusters
  • Real users and farmed activity, over time
  • Evidence for the largest clusters
  • A written verdict for your committee

Opens after the beta

Planned: $500 per report

Every cut comes with a reason.

Open any cluster and read the evidence: where the money came from, when the wallets moved, where they send their funds. Then you make the call.

Example · what a cluster report looks like

Cluster 0212

  • 418 wallets
  • One funder
  • 6 min window

Verdict

Cut

Confidence 0.97

Funding trail

FunderFq7d…9wLs

2 relays

418 wallets
0.021 SOL each

One wallet funded all 418 through two relays, with the same amount each time.

Timing

391 in 6 min

First transaction per wallet. 391 of 418 land between 15:12 and 15:18 UTC.

Shared exchange deposits

  • Deposit account 8Hn3…uQ4z 371 wallets
  • Deposit account Mv6p…aR2k 44 wallets

415 of 418 send their funds out to two exchange deposit accounts.

Three signals agree: funding trail, timing, shared deposits.

Airdrops for people, not farms.

Fair to real people. Detection is never perfect, so the way back is part of the product. A real trader can run several wallets. The chain shows the pattern; only the person can explain it.

  1. The user appeals from your claim page.

    A cut wallet sees why it was cut and can appeal in a short form, right where it tried to claim.

  2. Assay re-checks with the new info.

    The wallet goes back through the engine with what the user told us, against the same evidence.

  3. Restored, or explained.

    The wallet goes back on the list, or the user gets the evidence in plain words. Either way, the decision lands in a public log.

What a public appeals log looks like

Example entries

  1. Appeal A-0091 Wallet 5RtW…m3Qa Cluster 0388 Restored Own funding history since 2024. Matched the cluster on timing only.
  2. Appeal A-0092 Wallet Gh2v…k8Ld Cluster 0212 Cut upheld Funded by the cluster funder inside the 6-minute window.
  3. Appeal A-0093 Wallet Tz8e…4nWb Cluster 0457 Restored Shared one exchange account with the cluster, nothing else. One signal is not enough.

Planned pricing · everything is free in beta

Three doors, one engine. These are the planned prices; while Assay is in beta, nothing is charged.

You

Connect a wallet

Sign in with Solana: no email, no transaction. Planned: pay as you go from a USDC balance.

  • Launch-risk check

    Live now, free in beta. Planned: 10 a day free per wallet

    $0.05per check

  • Assay your own list

    Opens after the beta. Up to 5,000 wallets free, evidence pack included

    $0.30per wallet after

  • Appeals

    For any cut wallet

    Freealways

  • Traction check

    Opens after the beta. Is a project’s on-chain usage real?

    $500per report

Your agent

Pay per call

Today the HTTP API is free and needs no key. Planned: x402 in USDC on Solana, no account.

  • GET /api/launch-risk?mint=

    Live now, free in beta

    $0.05per call

  • List assays over the API

    Opens after the beta

    $0.30per wallet

  • Appeal status

    Opens after the beta

    Free

Check a token before your agent swaps into it.

Your team

Campaigns and volume

For teams running a distribution, and for launchpads, terminals and wallets. Invoiced.

  • Airdrop Assay

    Full list, evidence pack, appeals desk for 30 days after claim opens

    from$15,000per campaign

  • API

    Launch Risk for launchpads, terminals and wallets

    from$1,000per month

Questions people ask

Do I need an account or an email?

No. Connect a Solana wallet and sign one message to sign in. It isn’t a transaction and it moves nothing. You don’t need to sign in to check a token: the check on this page is open to anyone and free while Assay is in beta.

What about false positives?

One signal never cuts a wallet. A cluster needs several signals pointing at the same group, and every cut carries its evidence, so you can check it before you act. Clusters below your confidence threshold go to review, not to the cut list. If a real person is still cut, they can appeal.

What data do you need from us?

Your eligibility list as a CSV of wallet addresses, with allocations if you have them, and the snapshot date. We work from public Solana data. We don’t need emails, IP addresses or anything else about your users.

Is it Solana only?

Yes. We read Solana and nothing else: SOL and SPL transfers, program activity and exchange deposit flows. One chain, read closely.

How long does an assay take?

List assays open after the beta. How long one takes will depend on the list’s size and history. Planning a campaign now? DM us on X with the list size and the airdrop date.

How do appeals work?

They open with list assays, after the beta. Users appeal from your claim page; Assay re-checks the wallet with what they tell us, then restores it or explains the cut, and every decision goes into a public log. Appeals will always be free, and Airdrop Assay includes the appeals desk for 30 days after claim opens.

Can users see why they were cut?

Yes. A cut wallet sees its cluster and the evidence in plain words, for example: funded by the same wallet as 417 others within 6 minutes. They don’t see our thresholds.

How does an agent pay?

Today it doesn’t: the HTTP API is free in beta and needs no key or account. The planned paid tier is x402: the first request gets 402 Payment Required with the exact price, the agent pays in USDC on Solana and resends. It isn’t enforced yet. Setup is on the For agents page.

Enterprise

Planning an airdrop? Talk to us before tokens go out.

List assays open after the beta. For a campaign or API volume, the planned pricing is Airdrop Assay from $15,000 per campaign, with an appeals desk for 30 days after claim opens, and the API from $1,000 a month.

Send the project, the list size and the airdrop date in a DM to @Assay_sol.

DM us on X (opens in a new tab)

Checking a single token? Use the live check: free, no sign-up.