Abstract#
Assay takes a Solana coin (a mint address, a pump.fun or DexScreener link, or a ticker) and answers one question: does it do what it says? It collects facts from pump.fun, DexScreener, the Solana chain, the coin's website, its GitHub and its X profile. Claude Haiku 5.5 lists the utility the coin claims. Claude Opus 5.5 marks each claim against the facts and names the evidence behind every mark. The grade, a fineness from 0 to 999, is then plain arithmetic on the marks, so the same marks always give the same grade.
The problem#
Coins launched on pump.fun often promise a product: an AI agent, a bot, staking, a revenue share, a burn, a treasury. Checking a promise means reading the site, finding the program it runs on, looking at who holds the supply, and checking whether the code is real. Most buyers don't have the time, and a landing page with a roadmap looks the same as a working product at a glance.
Utilitest (utilitest.fun) scored whether a coin's utility was real. On 21 October 2026 its site no longer loads (its host reports the deployment as not found). Assay is a new tool built for the same job, with its own method: every mark cites its evidence, and nobody chooses the number.
How an assay works#
An assay runs in four steps, in about 20 to 60 seconds.
- Collect. Assay reads the sources in the table below. Every finding is written down as a piece of evidence with a short id (
mint,holders,fees,site1,gh1…). Claude never fetches anything itself; it only reads this evidence. - Read. Claude Haiku 5.5 reads the coin's own words (its pump.fun description, its website and docs pages, its X bio, its README) and lists up to 8 claims of utility, each with a quote and where it was said. Price talk and slogans are not claims. A coin that claims nothing gets an empty list.
- Test. Claude Opus 5.5 marks each claim verified, partly, unproven or false, with the ids of the evidence the mark rests on, and sets how much it weighs (core, feature or detail). A site that doesn't load counts as no evidence, not as evidence against. A page that only repeats a promise can't verify it: Assay downgrades any "verified" mark that cites only the claim's own text to "partly".
- Strike. The fineness is computed from the marks (next section) and the report is stored. Risks such as a held mint authority or a whale are checked by fixed rules, shown beside the grade, and never change it.
Sources
| Source | What Assay reads | Limits |
|---|---|---|
| pump.fun | Name, ticker, creator, launch time, graduation, market cap, description, links, top 50 holders | Public API; coins not made on pump.fun skip it |
| DexScreener | Every pool, liquidity, volume, first pool's date, listed links | Public API |
| Solana | Mint and freeze authorities, supply, Token-2022 extensions, largest holders, where pump.fun sends the creator fees, and up to 6 addresses the site cites (is a program upgradeable, who owns an account, its SOL) | Read only |
| Website | The home page and up to 4 of its pages on docs, the app or the token: text, links, forms, app words | HTML only, 1.5 MB and 9,000 characters a page, 9 s timeout, public addresses only |
| GitHub | Up to 3 linked repos: age against the coin, fork or not, commits, contributors, README | Public API |
| X | The linked profile's bio, link, followers and join date | Through the free FxTwitter API; posts aren't read |
| CoinGecko | Its listing: categories, homepage, code repos, description | Public API; most new coins aren't listed |
| DefiLlama | The products it tracks for the token, the value locked in each, and fees paid over 30 days | Public API; only coins with tracked products |
Grading#
Gold is graded in parts per thousand: 999 is pure, 750 is 18 karat. Assay's fineness is how many parts in a thousand of what a coin claims hold up.
fineness = 999 × Σ(weight × mark value) ÷ Σ(weight)| Counts | |
|---|---|
| Core claim | weight 3 |
| Feature | weight 2 |
| Detail | weight 1 |
| Verified | 100% |
| Partly | 50% |
| Unproven | 15% |
| False | 0% |
Two caps stop a pile of small truths from hiding a broken core: if no core claim is verified, the fineness stops at 584; if any core claim is false, it stops at 374.
| Fineness | Grade | Means |
|---|---|---|
| 900–999 | 24 karat (999) | Does what it says. |
| 750–899 | 18 karat (750) | Mostly does what it says. |
| 585–749 | 14 karat (585) | Some of it works. |
| 375–584 | 9 karat (375) | A little of it works. |
| 120–374 | Gold plated (GP) | Mostly promises. |
| 0–119 | Pyrite (FeS₂) | The claims don't hold up. |
| No claims | Unmarked | Claims no utility, so there's nothing to test. Not a fail. |
Each report carries a hallmark of three punches, like real gold: the coin's ticker, the fineness, and Assay's own mark.
Money flows#
Assay takes no money from anyone and asks for no transactions. Connecting a wallet only shares its address.
| What | Amount | Paid by | Where it goes |
|---|---|---|---|
| Reading a report | Free | Nobody | Nothing moves |
| A new assay | Free, 3 a day per visitor | Assay pays its Claude and hosting bills | Nothing moves on chain |
| A holder's assay | Free, 50 a day per holder wallet | Assay | Nothing moves on chain |
To keep the bill bounded, the whole site runs at most 400 new assays a day, and a coin assayed in the last 12 hours opens its stored report instead of running again.
Token#
$ASSAY has not launched. Its mint will be published on this page and on getassay.fun when it does. Any coin calling itself Assay's before then is not ours.
The rule it will switch on is already in the code: a wallet holding at least 100,000 $ASSAY gets 50 new assays a day instead of 3. Because connecting needs no signature, one holder address counts from at most 3 networks a day. Holding $ASSAY pays nothing and promises nothing; it only raises the daily allowance.
Verification#
Every report lists its evidence with links to Solscan, pump.fun, DexScreener, GitHub and the coin's own pages, so each mark can be checked by hand. The marks and the arithmetic are public, so anyone can recompute a fineness from a report.
Reports are served as JSON at /api/report/<mint>, and the ledger at /api/ledger (see the docs).
Risks and limits#
- The model can be wrong. Claude can misread a page or weigh a claim badly. Every mark shows what it rests on, and a fresh assay is open after 12 hours.
- Two assays can differ. The claims are read afresh each time, so the same coin can land a few dozen points apart (in tests on 21 October 2026, one coin came out anywhere from 603 to 720). A coin near a band's edge can move a grade. The marks and evidence show why.
- Some things can't be seen from outside. Assay reads programs' on-chain facts (do they exist, can they still be upgraded, what accounts they own), not their full source code. Off-chain promises (a team, a partnership, revenue) usually stay unproven.
- Pages that draw themselves with JavaScript show Assay almost no text, so a real app built that way can be under-graded. The report says when this happened.
- Sources change. pump.fun's API, DexScreener and FxTwitter are third-party services and can change or go down; the report notes any source it couldn't read.
- A grade isn't a price call. A 24-karat coin can still go to zero, and a meme can run without any utility. Coins are volatile and you can lose everything you put in.
- Projects may game the reader by writing claims to match the evidence. That only helps a coin whose claims are true, which is the point.
Roadmap#
- Built (1.0): the assay, the ledger, report pages with share images, the public API, holder allowances (switched on at launch).
- Planned: launching $ASSAY on pump.fun. No date is set.
Disclaimer#
Assay is an information tool. Nothing on getassay.fun is financial advice or a promise of returns. Grades describe evidence found at one moment; projects change. Coins can go to zero.