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_kind | What happened | next_action |
|---|---|---|
infrastructure | Our upstream data sources did not answer — usually rate limits. The token may be fine. | retry, once, after
retry_after_seconds |
coverage | The 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 |
mixed | Some 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 with | Means |
|---|---|
upstream request failed | Ours: a source did not answer, and the parentheses say what each one returned. |
the sell simulator has no record of this token | About the token: the simulator has never seen it. |
simulation failed | The 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 verify | Pools 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 count | The 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.