EVM token safety check
POST /api/token-safetyIs this EVM token safe to trade? One deterministic call returns a verdict (ok, caution, unsafe) with the named facts behind it: honeypot, can-sell, buy and sell tax, mintable supply, hidden or reclaimable ownership, pausable transfers, blacklist, modifiable slippage, upgradeable proxy, verified source, LP lock share and holder counts. Covers Base, Ethereum, Polygon, Arbitrum, Optimism, BSC, Gnosis and Celo. No model in the path, so the same token always gives the same answer; checks the upstream could not answer are listed as unknown rather than counted as safe. For the cited, researched version see token-risk; for Solana mints see sol-token-safety.
Input
| Field | Type | Description |
|---|---|---|
chain | string | One of: base, ethereum, polygon, arbitrum, optimism, bsc, gnosis, celo. |
address * | string | Token contract address (0x…). |
Example output
{
"chain": "base",
"address": "0x940181a94A35A4569E4529A3CDfB74e38FD98631",
"verdict": "caution",
"because": "supply is mintable",
"blocking": [],
"warnings": [
"supply is mintable"
],
"unknown": [
"buy tax",
"sell tax"
],
"facts": {
"honeypot": false,
"openSource": true,
"mintable": true,
"ownerRenounced": null,
"buyTaxPct": null,
"sellTaxPct": null,
"holderCount": 752285,
"lpLockedPct": 0
},
"source": "GoPlus token_security"
}
Try it - see the 402 challenge (free)
curl -i -X POST https://agent402.tools/api/token-safety \
-H "Content-Type: application/json" \
-d '{"chain":"base","address":"0x940181a94A35A4569E4529A3CDfB74e38FD98631"}'
The response is HTTP 402 Payment Required with exact payment requirements. Any x402 v2 client pays automatically and retries:
Paid call (JavaScript agent)
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
import { metaTitle, metaDescription } from "./seo-meta.js";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/api/token-safety", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"chain": "base",
"address": "0x940181a94A35A4569E4529A3CDfB74e38FD98631"
}),
});
Related tools
Crypto order book
GET /api/crypto-orderbookL2 order-book snapshot for a spot pair: best bid/ask, mid price, spread (absolute + %), and the top N aggregated price l…
try in playground →Stablecoin peg monitor
GET /api/stablecoin-pegLive $1-peg deviation for the top USD stablecoins (USDT, USDC, USDS, DAI, USDe, PYUSD, USDD, TUSD, FDUSD by default, or …
try in playground →Wallet balance (native + ERC-20)
POST /api/wallet-balanceLook up the native coin balance (ETH/MATIC) plus every ERC-20 holding for a wallet address on Ethereum, Base, Polygon, A…
try in playground →