Reading token reports
A report is a set of separate facts. This page walks through real ones, so you can see how to read them. All four were fetched from the API on 2026-11-04 UTC, and values change on each read. The tokens are examples for reading the output. Naming a token here is not a view on it, and nothing here is advice to act on any token.
Read token checks for all thresholds.
#Example one: USDT on Ethereum
Request: GET /tokens/ethereum/0xdAC17F958D2ee523a2206206994597C13D831ec7, captured at 2026-11-04T19:33:40.822Z.
counts: 8 pass, 4 warn, 1 fail, 1 unknown.
| Check | Status | Detail |
|---|---|---|
liquidity | pass | $67,068,272 across 30 pool(s). |
pool_age | pass | 1987 days. |
open_source | pass | Source code is verified. |
honeypot | pass | Simulation did not flag a sell block. |
mintable | warn | The contract has a mint function. |
proxy | pass | Not a proxy. |
balance_change | fail | Owner can edit balances. |
hidden_owner | pass | No hidden owner was found. |
pausable | warn | Transfers can be paused. |
blacklist | warn | Addresses can be blocked. |
buy_tax | pass | 0%. |
sell_tax | pass | 0%. |
top10 | warn | 46.2% (contracts and exchanges are included). |
lp_locked | unknown | LP holder data is absent. |
USDT has a large market and a long record, and it still shows a fail and several warnings. This is correct output.
The issuer of a centrally issued stablecoin holds admin powers by design. USDT's published contract has functions to issue new supply, pause transfers, block addresses and remove the balance of a blocked address. The checks report those functions exist:
mintableiswarn: the issuer can create supply.pausableiswarn: the owner can stop transfers.blacklistiswarn: addresses can be blocked.balance_changeisfail: the owner can change balances. The check does not ask why.
The right reading is that holders rely on the issuer. That is a fact you may accept for this kind of asset, and it is the same fact you would not accept in an anonymous token launched this morning. The check gives the same result in both cases, so the context is your job.
#The top holder check
top10 reads warn at 46.2%. The largest holders:
| Address | Share | Contract | Label |
|---|---|---|---|
0xf977814e90da44bfa03b6295a0616a897441acec | 16.845% | no | Binance 8 |
0x47ac0fb4f2d84898e4d9e7b4dab3c24507a6d503 | 10.896% | no | none |
0x6c96de32cea08842dcc4058c14d3aaad7fa41dee | 3.889% | yes | none |
An exchange wallet leads. Exchange holdings are customer balances spread across many people, so a high share does not mean one party controls that supply. A label helps here when one exists, and a null label tells you nothing either way.
#The unknown
lp_locked reads unknown, because the source returned no LP data. Major tokens trade in many pools, often with no LP token at all. Unknown here does not suggest a problem. It means this check gives no information.
#Example two: USDC on Ethereum
Request: GET /tokens/ethereum/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, captured at 2026-11-04T19:33:41.833Z.
counts: 7 pass, 1 warn, 0 fail, 6 unknown.
| Check | Status | Detail |
|---|---|---|
liquidity | pass | $223,469,355 across 30 pool(s). |
pool_age | pass | 2361 days. |
open_source | pass | Source code is verified. |
honeypot | pass | Simulation did not flag a sell block. |
mintable | unknown | Field is absent from the source. |
proxy | warn | Logic can change through a proxy. |
balance_change | unknown | Field is absent from the source. |
hidden_owner | unknown | Field is absent from the source. |
pausable | unknown | Field is absent from the source. |
blacklist | unknown | Field is absent from the source. |
buy_tax | pass | 0%. |
sell_tax | pass | 0%. |
top10 | pass | 24.6% (contracts and exchanges are included). |
lp_locked | unknown | LP holder data is absent. |
USDC's contract also gives its issuer powers such as minting and blocking addresses, yet the report shows no fail. The contract is a proxy, and GoPlus returned no value for is_mintable, owner_change_balance, hidden_owner, transfer_pausable and is_blacklisted, so they read unknown.
Do not read USDC as "safer than USDT" because it has fewer fail rows. Six unknowns mean six questions the source did not answer. **Count unknown as missing information, never as a pass.**
#Example three: a new token on Base
Request: GET /tokens/base/0xb1c3a6ac90e324c4072ad4b2a71c5d9382f9565c, captured at 2026-11-04T19:33:43.093Z. This token appeared in the trending pools list with a pool created hours before.
counts: 11 pass, 2 warn, 1 fail, 0 unknown.
| Check | Status | Detail |
|---|---|---|
liquidity | pass | $106,853 across 5 pool(s). |
pool_age | fail | 6 hours. |
open_source | pass | Source code is verified. |
honeypot | pass | Simulation did not flag a sell block. |
mintable | pass | No mint function was found. |
proxy | pass | Not a proxy. |
balance_change | pass | No such function was found. |
hidden_owner | pass | No hidden owner was found. |
pausable | pass | No pause function was found. |
blacklist | pass | No blacklist function was found. |
buy_tax | pass | 0%. |
sell_tax | pass | 0%. |
top10 | warn | 53.2% (contracts and exchanges are included). |
lp_locked | warn | 0% of tracked LP tokens are locked. |
Here the contract checks all pass, and the report is still thin in the ways that count.
- Age.
pool_ageisfailat 6 hours. All other data on this token covers 6 hours at most. - Liquidity.
passstarts at $100,000, and this token is only just above that at $106,853. Liquidity can leave a pool in one transaction. - LP.
lp_lockediswarnat 0%. Pool providers can withdraw. - Holders.
top10iswarn, and the top holder holds 40.5%. That holder is a contract with no label, so it may be a pool or a locker. The report cannot say which.
Clean contract flags on a six hour old token are one small set of facts. They are not a reason to act, and the report does not suggest any.
#Example four: a new token on Solana
Request: GET /tokens/solana/FrSrp9P3bgiFHwr6h5PQHVh55iC8Dae4eZCKPUo9pump, captured at 2026-11-04T19:33:45.189Z.
counts: 7 pass, 1 warn, 1 fail, 0 unknown.
| Check | Status | Detail |
|---|---|---|
liquidity | warn | $13,892 across 2 pool(s). 3 pool(s) with an outlier price were left out. |
pool_age | fail | 16 hours. |
mint_authority | pass | Revoked. No new supply can be minted. |
freeze_authority | pass | Revoked. Accounts cannot be frozen. |
top10 | pass | 52.3%. These are token accounts, and pool vaults are included. |
closable | pass | No close authority is set. |
balance_mutable | pass | No such authority is set. |
non_transferable | pass | Token can be moved. |
rugcheck | pass | 1 of 100 (a higher score means more risk flags at the source). |
This report shows two things that do not appear in the earlier examples.
- Outlier pools. Three of five pools were left out because their implied price was far from the median. Without this filter, spoofed pools could inflate the liquidity figure. Read the
detailtext, and readmarket.outlier_pools_excluded. - Token accounts.
top10counts token accounts, and pool vaults are included. The largest account holds 24.133%, andis_contractis not available on Solana, so you cannot tell from this report alone whether it is a pool vault. On Solana,top10can only reachwarn.
Liquidity of $13,892 against 24 hour volume of $527,789 is also worth noting. Volume far above liquidity can come from repeated trading between few parties. The report gives both numbers and draws no conclusion.
#A reading order
Read stale first. If it is true, every source failed, and the report is a saved copy from the time in as_of.
- Check
sources[]. A failed source explains a group ofunknownchecks. - Check
pool_ageandliquidity. They set the context for everything else. - Read each
warnandfailwith the type of asset in mind. Admin powers mean one thing for a regulated stablecoin and another for an anonymous launch. - Read
holders[]and look at labels andis_contract. - Count
unknown, and treat it as missing information. - Compare
token.symbolandmarket.symbol, and check the address against a source you trust. Anyone can deploy a token with any name and symbol. Symbols prove nothing.
#Common mistakes
| Mistake | Better reading |
|---|---|
| Adding up passes as a score | Checks are not equal, and Farbeam gives no score for this reason |
Treating unknown as fine | It means no information |
Treating fail as a scam | USDT has one, for a documented admin power |
| Treating an all-pass token as safe | Example three has clean flags and is six hours old |
| Trusting liquidity alone | It can leave at once. Check LP lock status and age. |
A report tells you what public sources say at one moment. It does not predict price and is not financial advice. See the disclaimer.