What unknown means, and what your agent should do with it

unknown means a check the verdict depends on could not be completed. It is not a low-risk result, and an agent must never trade on it. It is also not an error: it is the product refusing to guess.

Why a risk check says "I don't know"

Two checks are critical: whether the token has a market you can exit into (liquidity), and whether it can be sold (sellability). If either could not be read, the answer is unknown — never low or medium, however clean the rest looks. A safety check that answers optimistically when it is broken is worse than no check.

Retry or abstain: read unknown_kind

unknown_kindWhat happenednext_action
infrastructureOur upstream data sources did not answer — usually rate limits. The token may be fine.retry, once, after retry_after_seconds
coverageThe token itself cannot be checked: no trading pair, no simulator record, a sell simulation that reverted, or no pool priced in an asset whose value can be verified. The recommendation names which.abstain — retrying will not change it
mixedSome of each.abstain

Retry at most once. An agent that retries every unknown until it gets an answer has turned "we could not check" into "we checked", which is exactly the mistake the verdict exists to prevent.

Reading the reason

evidence.data_gaps says which check was missing and why, in the upstreams' own terms:

"data_gaps": [
  {"dimension": "liquidity", "source": "dexscreener+geckoterminal",
   "reason": "upstream request failed (dexscreener 429, coingecko 400, geckoterminal 429)"}
]
Reason begins withMeans
upstream request failedOurs: a source did not answer, and the parentheses say what each one returned.
the sell simulator has no record of this tokenAbout the token: the simulator has never seen it.
simulation failedThe simulator ran and the trade reverted, often on a router it cannot drive. Unverified, not dangerous.
no pool's depth is priced in an asset we can verifyPools exist, but every one is priced in a token whose value no independent market sets — so the depth it claims cannot be checked.
upstream request failed: no distinct-seller countThe simulator calls it a honeypot while sells are completing, and the number of distinct sellers — which tells real exits from one wallet trading with itself — could not be read.

When the absence is the answer

If no market data source can price a token and no simulator can trade it, on a chain we know we searched, the answer is not unknown but high, with the signal "Nothing about this token can be verified". Every legitimate token clears at least one of those. The rule applies only when the gaps are about the token, never when they are our own outage.

How often

The benchmark's rate is on the method page. Production refuses more often than the benchmark, because the benchmark replays cached data and cannot see live rate limits; a daily reading of the live rate is in the scorecard.