Reason codes
Each reason in an answer has a code, a severity and a sentence about this token or wallet. Codes are public and permanent: they are only ever added, never renamed. The live list is at GET /v1/reasons.
How they count
- CriticalBlocks the trade on its own: a sanctioned address, a sale that fails, a honeypot hook, a hidden mint, a counterfeit token, a sweeper wallet, a planted look-alike.
- High, medium, lowAdd points to
risk_score: caution from 30, block from 70. A few never allow on their own (the pool's money can be pulled, there is no real market, a code we can't read).
- InfoContext that softens or explains: a well-known token, powers held by a multisig, an established market.
- CHECK_FAILEDA check that couldn't finish appears as
CHECK_FAILED:<name>, and in checks_failed. It never counts in a token's favour.
Blocks the trade critical
| Code | Check | Meaning |
SANCTIONED | address, token | On the OFAC SDN list or flagged by the Chainalysis sanctions oracle. |
KNOWN_SCAM | address, token | Matches a scam, drainer, phishing or exploiter label. |
SELL_BLOCKED | token | A simulated sell reverted: you may not be able to sell (honeypot). |
COMPROMISED_WALLET | address | Wallet delegates (EIP-7702) to a known sweeper: anything sent to it is forwarded to an attacker. |
ADDRESS_POISONER | address | Wallet is set up for address poisoning: it imitates other addresses to trick payers. |
HONEYPOT_HOOK | token | The main pool's Uniswap V4 hook is a copy of a known honeypot hook, set to keep 50% or more of what a buyer sells. |
COUNTERFEIT_TOKEN | token | A fake of a major token: its ticker is spelled with look-alike letters, or it passes itself off as money (USDC, USDT, ETH and the like) with no market to sell into. |
HIDDEN_MINT | token | The token's creator or owner can transfer far more tokens than exist (a mint hidden in transfer): they can create tokens at will and sell them into the pool. |
Serious high
| Code | Check | Meaning |
HIGH_SELL_TAX | token | Sell tax above 10% (above 50% always blocks). |
OWNER_CAN_MINT | token | An owner or role can mint new tokens. |
OWNER_CAN_BLACKLIST | token | An owner or role can block specific addresses from transferring. Never allow unless behind a multisig or timelock (or a known issuer). |
OWNER_CAN_SET_FEES | token | An owner or role can change transfer fees (up to taking a whole sale). Never allow unless behind a multisig or timelock (or a known issuer). |
UPGRADEABLE_BY_EOA | token | A single wallet can replace the contract's code at any time (no multisig or timelock); comes with UPGRADEABLE. |
UNRESOLVED_PROXY | token | The contract delegates to code we could not resolve; never allow. |
NO_MARKET | token | Main pool holds under $1,000: there is no real market to sell into. Comes with LOW_LIQUIDITY; never allow. |
EXIT_LIQUIDITY_INSUFFICIENT | token | Your trade size (amount_usd) is too large to exit without heavy loss: a buy of that size is priced 10% or more worse than a small one, is more than all the quote a seller can reach in the token's pools, can't be taken whole by the pool, or reverts where a small one goes through. Never allow. |
UNKNOWN_HOOK | token | Uniswap V4 pool with an unrecognised hook (hooks can tax or block sells). |
HOOK_OWNER_CAN_SET_TAX | token | The main pool's Uniswap V4 hook is a copy of a known honeypot hook: its owner can raise the sell tax to 99.99% at any time. |
DEPLOYER_PRIOR_RUG | token | The deployer's earlier tokens were rugged. |
DEPLOYER_SANCTIONS_EXPOSURE | token | The deployer's first funds came directly from a sanctioned address. |
DEPLOYER_RUG_FUNDED | token | The deployer's first funds came from a wallet that funded the creators of rugged tokens. |
COPYCAT_TOKEN | token | Uses the ticker or name of a major token (top ~500 by market cap) at a different address: it may be a fake. |
SANCTIONS_EXPOSURE | address | Wallet's first funds came directly from a sanctioned address. |
Worth knowing medium
| Code | Check | Meaning |
HIGH_BUY_TAX | token | Buy tax above 10%. |
OWNER_CAN_PAUSE | token | An owner or role can pause all transfers. |
UPGRADEABLE | token | Proxy contract: the code can be replaced later. |
UNVERIFIED_SOURCE | token | Source code is not verified on a block explorer. |
CONCENTRATED_HOLDERS | token | Top 10 holders own over 50% (excluding pools and burn). |
LOW_LIQUIDITY | token | Main pool holds under $10k. |
LP_NOT_LOCKED | token | The main pool's liquidity (its LP tokens, or its Uniswap V3/V4 or Aerodrome Slipstream positions) is held by a normal wallet, not burned or locked: it can be withdrawn at any time. Never allow. |
SERIAL_DEPLOYER | token | The deployer launches many short-lived tokens. |
DEPLOYER_MIXER_FUNDED | token | The deployer's first funds came directly from a mixer (e.g. Tornado Cash). |
NEW_TOKEN | token | Token contract created less than 24 hours ago. |
MIXER_FUNDED | address | Wallet's first funds came directly from a mixer (e.g. Tornado Cash). |
NEW_WALLET | address | Wallet first seen less than 7 days ago, or never seen. |
Minor low
| Code | Check | Meaning |
LOW_ACTIVITY | address | Wallet has sent fewer than 3 transactions. |
CHECK_FAILED | address, token | A check timed out or errored (shown as CHECK_FAILED:<name>); see checks_failed. |
Context info
| Code | Check | Meaning |
OWNER_RENOUNCED | token | Owner is the zero address (lowers risk unless upgradeable). |
KNOWN_GOOD_TOKEN | address, token | A well-known token: issuer admin powers are not scored as risk. |
ADMIN_SAFEGUARDED | token | The admin powers need several signatures (multisig) or wait out a delay (timelock of 24 h or more): they weigh less. |
ESTABLISHED_TOKEN | token | Traded for 180+ days with a real market ($1M+ in its main pool, or a CoinGecko top-1,000 market cap for this exact contract), or for 2+ years with $250k+ across its pools: holder and LP concentration aren't scored, and admin powers behind a multisig or timelock weigh less. |
ISSUER_CONTROLLED | address, token | The issuer can freeze or mint (for example USDC). |
BONDING_CURVE | token | Token is still trading on a launchpad bonding curve. |
DELEGATED_WALLET | address | Wallet has delegated its code to a contract (EIP-7702). |
CONTRACT_ADDRESS | address | Address is a smart contract; use /v1/check/token for a full token analysis. |