Forge Notes

Verifying a token on chain before you trade it

Verification is a sequence, not a glance. It starts at the mint address because the ticker is free text that anybody can copy, and it ends at the pool because that is where an exit actually happens. This note gives the order this workshop uses, what a clean answer looks like at each step, what a non-clean answer means, and the honest limit of what any of it can establish.

Field guide The Forge Notes Desk 2061 words 10 min read Updated 7 September 2026
Question
Given only a token that somebody has put in front of you, what can be established from the chain, and in what order?
Inputs needed
The mint address, and a public explorer. Nothing else: no node, no subscription, no privileged access and no developer.
Permanent here
Nothing. This procedure only reads. It signs no transaction and changes no field.
Not covered
Price opinions, verdicts on named tokens, and any method for making one of these checks return a misleading answer.
Confidence
High on what the checks read, which are public fields. Explicitly limited on what they mean, because state is not intent.

The rule in one paragraph

Start at the mint address, never at the name. Read the authorities and the supply together. Read the token program and, if it is Token-2022, the extension list. Read the metadata state and fetch the URI yourself. Then look at holders and at who controls the pool. Everything else is commentary.

The order matters because each step changes how you read the next one. A supply figure means something different once you know whether the mint authority is live. A clean authority state means something different once you know one wallet holds most of the float. Doing the checks out of order produces the same facts and a worse reading.

Getting the right mint address

Every step below hangs off one string, so the string has to be right. A symbol is not an identifier: the metadata standard does not enforce uniqueness and cannot, so two mints can display the same ticker and neither is invalid. The consequences of starting from the wrong address are total, because every subsequent check will be perfectly accurate about a different token.

Get the address from a source with something to lose if it is wrong, and then confirm it in a second place. A project site served over HTTPS, an established aggregator entry and the pool itself are three independent sources; agreement between two of them is a reasonable bar. Copying an address from a message, an image or a search result is where most of the damage in this area starts.

Read the whole address, not the ends

Addresses are commonly displayed abbreviated, with the first four and last four characters shown. Two different addresses can share both ends, and generating one that does is not expensive. Compare the full string, or at minimum compare a long middle section as well.

This is the only step in the procedure where a mistake invalidates everything that follows, which is why it is first and why it deserves more care than it usually gets.

The order, and why it is that order

Twelve checks, grouped into five passes. The table gives each one, the clean answer for a token presented as fixed supply and permissionless, and what a different answer actually means. It means something different for a token that presents itself differently, which is the point of the third column.

The twelve checks in the order this workshop runs them, with the reading for a token that presents itself as fixed supply and permissionless.
PassCheckClean answerOther answers mean
1Mint address confirmed in two independent placesFull string matchesStop. Nothing after this is about the token you think it is
1Mint authorityNoneSupply can grow at any time; the published figure is a snapshot
1Freeze authorityNoneIndividual holder accounts can be frozen by that key
2DecimalsAny deliberate valueZero decimals on something described as a currency is worth a question
2Supply, divided by the decimals divisorMatches the published figure exactlyA mismatch is either a raw-versus-display error or a claim that is not about this mint
3Owning token programEither, statedToken-2022 means the extension list is part of the token's behaviour
3Extension list, if Token-2022Empty, or explainedPermanent delegate, transfer hook, default frozen state and non-transferable each change what holding means
4Metadata account existsYesNo metadata means the name you were shown came from somewhere else
4Mutable flag and update authorityConsistent with the claimA live authority can rewrite name, symbol and URI at any time
4URI fetched and image resolvesLoads, and matches the on-chain nameA dead link is usually neglect; a mismatch is worth understanding before trading
5Holder distributionNo single unexplained wallet dominating the floatConcentration is not wrongdoing, but it is the largest single determinant of what an exit meets
5Pool and liquidity provider token custodyBurnt, or locked in a way you can verifyWithdrawable liquidity is the risk most checklists never reach

Authorities, decimals and supply

The first pass is one page in any explorer. Both authority fields and the supply are stored in the mint account, so a single lookup answers three of the twelve checks. The discipline is to read all three rather than the first one, because the mint authority field is the one everybody checks and the freeze authority sits directly beside it.

Read supply as arithmetic. Take the raw supply, divide by ten to the power of the decimals value, and compare the result to whatever figure is being published. A mismatch is not automatically sinister; the most common cause is somebody quoting a raw number as a display number. It is, however, always worth resolving before anything else, and the arithmetic is worked through on the decimals and supply note.

Then read the two authority fields together, because they answer different questions. No mint authority means supply cannot grow. No freeze authority means no account can ever be frozen. Each is a permanent guarantee on its own, and neither implies the other, as set out in the authorities note.

Program and extensions

The mint account's owner tells you which token program governs the token. If it is the original SPL Token program, the behaviour is fully described by the fields already read. If it is Token-2022, there is a second list to read, and skipping it makes the whole verification incomplete.

Extensions worth identifying immediately are a permanent delegate, which allows a named address to move or burn tokens from any account indefinitely; a default account state of frozen, which means new holders start unable to transact; a transfer hook, which routes every transfer through a third program that can cause it to fail; a transfer fee, which withholds a proportion of each transfer; and non-transferable, which makes the token permanently unmovable once received. The full set is listed in the Token-2022 documentation.

None of these is a defect. They exist because real designs need them, and several are exactly what a compliant or enterprise token requires. What matters is whether they are present, whether they are explained, and whether the explanation matches how the token is being described to you.

Metadata state

The fourth pass moves to a different program and a different account. Confirm the metadata account exists, read the mutable flag and the update authority, then open the URI in a browser and look at the JSON directly rather than trusting a rendered card.

The check people skip is the last one. Fetching the URI takes ten seconds and answers three questions at once: whether the document resolves at all, whether its name and symbol match the on-chain values, and whether the image is hosted somewhere durable or somewhere that will lapse. A mismatch between on-chain and off-chain names is worth understanding before trading, and a dead link is usually neglect rather than anything worse.

Mutability itself is a fact rather than a verdict. Most tokens are mutable and many well-run ones stay that way deliberately, which is the whole argument of the note on immutable versus updatable metadata. What a reader is entitled to is knowing which state applies and who holds the key.

Holder distribution

Explorers such as Solscan and the Solana Explorer list the largest token accounts for a mint. This is the first check that needs judgement rather than reading, because a large holder can be a treasury, a pool, a bridge, a market maker, an exchange, or one person.

Two things make it tractable. Pool accounts are identifiable, because they belong to an automated market maker program rather than to a wallet, and they should be excluded before you conclude anything about concentration. And unexplained concentration is a fact about what an exit will meet rather than an accusation about anybody: a float held by very few accounts behaves differently when one of them decides to sell, regardless of who they are or what they intend.

  • Identify which top accounts are pools or program-owned before reading the distribution at all.
  • Check whether large wallets were funded from the same source at the same time, which is visible in their transaction history.
  • Treat a published vesting or treasury arrangement as a claim to verify against the accounts, not as a finding.
  • Record what you observed rather than what you inferred, so the reading can be repeated later and disagreed with.

Pool and liquidity custody

This is the check that changes outcomes most often and appears in the fewest checklists. Trading happens against a pool, the pool holds the reserves, and the right to withdraw those reserves belongs to whoever holds the liquidity provider tokens. A token with both authorities revoked and immutable metadata can still have every unit of its liquidity withdrawable by one wallet.

Establish three things. Which pool the trading actually happens in, since a pair can exist on several venues with very different depth. Whether the liquidity provider tokens were burnt, which is verifiable as a burn transaction rather than as a claim. And if they are locked rather than burnt, what is holding them, for how long, and whether that arrangement is inspectable on chain rather than asserted in a document.

Depth is the number that matters more than turnover here. A pool that shows a large amount of daily volume and a small reserve is telling you that the same liquidity has been traded repeatedly, and it is the reserve, not the turnover, that your own order will meet.

Burning and locking are not equivalent, and the difference is worth stating plainly. A burn is a completed instruction that destroyed the provider tokens, visible as a transaction, after which nobody can withdraw the underlying reserves. A lock is an arrangement in which somebody or something still holds them under a condition, and the strength of a lock is entirely the strength of the thing enforcing it. A lock held by a program whose code and unlock time you can read is a different object from a lock described in a document, and only the first one is verifiable from the chain.

Reading turnover honestly

Once construction state is settled, the remaining signal on most screens is market activity, and it is the easiest thing on a chart to misread. Turnover is a sum of notional value. It cannot distinguish many participants trading once from a few addresses trading repeatedly, because both produce the same total.

It also has a supply side. Produced market activity is an openly sold category with published parameters and pricing, and a Solana DEX volume bot is a normal part of the venue landscape rather than a secret. Knowing that the category exists is part of reading a turnover figure honestly; treating every busy chart as evidence of a crowd is the error the knowledge prevents.

The practical questions to attach to any turnover figure are the ones any careful measurement has to state anyway: over what window, on which venues, and with what rule for multi-hop routes. A vendor page on how volume campaigns are measured is worth reading for exactly that reason, whatever you think of the category, because it makes the declarations a number needs explicit.

What verification can conclude

It can conclude that specific powers do not exist and that specific fields hold specific values, permanently and checkably. That is a genuinely strong result, and it is available to anyone with an address and a browser.

It cannot conclude that a token is safe, well run, or worth holding. No account field records competence, honesty or what a person will do next week. The chain records state, and state is not intent, which is why this workshop stops at describing state and refuses to convert a set of clean fields into a recommendation.

It also cannot rule out the risks that live outside the token program: a withdrawable pool, a concentrated float, an off-chain document served from a host that can change it, or simply a project that stops. Verification narrows the failure modes to the ones that no account can describe, and the honest end of the procedure is saying which of those remain rather than declaring a pass.

One thing this note deliberately never does is run in the other direction. Nothing here explains how to make any of these twelve checks return a comforting answer that the underlying state does not support. Each check is written so a reader can perform it; there is no version of this page written for the person on the other side of it.

Questions the workshop is asked

Why start at the mint address rather than the name?

Because names and symbols are unenforced free text. Any number of mints can display an identical ticker, and creating one costs a rent deposit and a transaction fee. The mint address is the only identifier that resolves to exactly one token, so every step of a verification has to hang off it or the whole procedure is checking the wrong thing.

Where do I get a mint address I can trust?

From a source with something to lose if it is wrong: the site the project itself publishes over HTTPS, an established aggregator entry, or a pool you can inspect. Then confirm the same address appears in more than one of those places. An address pasted into a chat by a stranger is a starting point for verification, never the result of one.

How long does this procedure take?

A few minutes on an explorer once you know where each field is displayed. The authority and supply checks are one page. Metadata is a second page and one fetch of the URI. Holders and pool custody take the longest because they need judgement rather than reading, and they are also the two that most often change the picture.

What is a clean result?

It depends on what the token claims to be. For a token presented as fixed supply and permissionless, clean means no mint authority, no freeze authority, metadata state that matches the claim, no surprising extensions, and a liquidity arrangement that is either burnt or verifiably locked. For a regulated asset-backed token, several of those would be wrong.

Does a clean result mean the token is safe?

No. It means specific powers do not exist and specific fields read a specific way. Nothing in an account records competence, intent or what people will do next, and the largest risks in practice are about people and liquidity rather than about mint fields. A clean result narrows the failure modes; it never removes them.

What if the token uses Token-2022?

Then the extension list becomes part of the verification rather than an optional extra. A permanent delegate, a default frozen account state, a transfer hook or a non-transferable flag each change what holding the token means, and none of them is visible in the two classic authority fields most checklists stop at.

Can this procedure be automated?

Every individual read can be, and several tools do exactly that. What does not automate well is the judgement: whether a holder concentration is a treasury or a problem, whether a lock arrangement is real, and whether the token claims to be the kind of thing its fields describe. Automation should shorten the reading, not replace it.

Filed on the Launchpads bench by The Forge Notes Desk. Field values, account sizes and instruction names are taken from the token programs and the metadata standard; any arithmetic in an example is labelled as illustrative and describes no particular token. The order this workshop checks a token in is set out in the field guide.

Next on the bench