Token honeypot check API
Check a Base token before you swap into it: a high/medium/low risk verdict with named red flags (paused transfers, blacklist, owner-set fees or tax, a mint selector with a live owner, upgradeable proxy, no or thin liquidity, a pair under 7 days old, buys but no sells as a honeypot sign) plus live DexScreener price, liquidity, volume and FDV. Heuristic screening, not a safety guarantee. Use before swapping into an unfamiliar Base token.
When an agent wants this
- Check a Base token before swapping into it
- Get named red flags (paused transfers, blacklist, owner-set fees, live mint owner, proxy, thin or new liquidity, buys but no sells) and a high, medium or low verdict
- Read live DEX price, liquidity, volume and FDV in the same call
Honeypot token check, token risk: red flags plus live DEX liquidity for a Base token before a swap $0.01
Check a Base token before you swap into it: a high/medium/low risk verdict with named red flags (paused transfers, blacklist, owner-set fees or tax, a mint selector with a live owner, upgradeable proxy, no or thin liquidity, a pair under 7 days old, buys but no sells as a honeypot sign) plus live DexScreener price, liquidity, volume and FDV. Heuristic screening, not a safety guarantee. Use before swapping into an unfamiliar Base token.
Inputs: address (required): Token contract address on Base (0x...).
Free first (25 successful calls per caller, no key):
curl "https://tools.funwords.eu/token-report?address=0x4200000000000000000000000000000000000006&trial=1"
With a card key from /credits, in a header or, when your client can only fetch a URL, in the URL:
curl -H "Authorization: Bearer adt_…" "https://tools.funwords.eu/token-report?address=0x4200000000000000000000000000000000000006"
curl "https://tools.funwords.eu/token-report?address=0x4200000000000000000000000000000000000006&api_key=adt_…"
Without a key the same URL answers 402 Payment Required with x402 and MPP terms, so a wallet client pays USDC per call and retries. Over MCP (https://tools.funwords.eu/mcp) this tool is token_report.
Example result
{
"chain": "base",
"address": "0x4200000000000000000000000000000000000006",
"marketDataSource": "DexScreener",
"marketRetrievedAt": "2026-10-14T12:00:00.000Z",
"risk": "low",
"summary": "low risk: 0 high and 0 medium flag(s). Heuristic screening, not a guarantee of safety.",
"flags": [],
"token": {
"name": "Wrapped Ether",
"symbol": "WETH",
"decimals": 18
},
"market": {
"priceUsd": 2432.15,
"priceChange24hPct": -3.05,
"volume24hUsd": 40100383,
"liquidityUsdTotal": 4904163,
"pairCount": 2,
"topPair": {
"dex": "pancakeswap",
"quote": "USDC",
"ageDays": 1000
},
"trades24h": {
"buys": 32010,
"sells": 30694
}
}
}Base ERC-20 token facts and risk flags: check a Base ERC-20 token's supply, owner and risk flags before buying $0.01
Base only (other chains: <chain>_token_info). Live on-chain facts for an ERC-20 token on Base: name, symbol, decimals, total supply, owner and whether ownership is renounced, paused state, proxy detection (EIP-1967, minimal proxy) with implementation and admin, and bytecode heuristics for mint, pause, blacklist and fee-setter functions. Use for token due diligence and rug-pull or honeypot screening before a swap.
Inputs: address (required): Token contract address on Base (0x...).
Free first (25 successful calls per caller, no key):
curl "https://tools.funwords.eu/token?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&trial=1"
With a card key from /credits, in a header or, when your client can only fetch a URL, in the URL:
curl -H "Authorization: Bearer adt_…" "https://tools.funwords.eu/token?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
curl "https://tools.funwords.eu/token?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&api_key=adt_…"
Without a key the same URL answers 402 Payment Required with x402 and MPP terms, so a wallet client pays USDC per call and retries. Over MCP (https://tools.funwords.eu/mcp) this tool is token.
Example result
{
"chain": "base",
"address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"name": "USD Coin",
"symbol": "USDC",
"decimals": 6,
"totalSupplyFormatted": "4333612020.876957",
"owner": "0x3ABd6f64A422225E61E435baE41db12096106df7",
"ownershipRenounced": false,
"paused": false,
"proxy": {
"isProxy": true,
"kind": "zeppelinos-legacy",
"implementation": "0x2ce6311ddae708829bc0784c967b7d77d19fd779",
"admin": "0x4fc7850364958d97b4d3f5a08f79db2493f8ca44"
},
"capabilities": {
"mint": false,
"burn": false,
"pause": false,
"blacklist": false,
"feeSetter": false
}
}Smart contract risk check: proxy, bytecode and supply red flags for a Base contract before approving it $0.01
Check a Base contract before you approve or call it: a low to critical risk tier with named flags (proxy, proxy with no implementation, tiny bytecode, zero token supply), plus bytecode size, the EIP-1967 implementation slot and ERC-20 owner, renounced and paused reads. Unreadable reads are null; EOAs return not-applicable. Limited heuristics, not a full security audit. Use before approving a spender or calling an unfamiliar Base contract.
Inputs: address (required): Base chain contract address, 0x-prefixed 20-byte hex.
Free first (25 successful calls per caller, no key):
curl "https://tools.funwords.eu/contract-risk?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&trial=1"
With a card key from /credits, in a header or, when your client can only fetch a URL, in the URL:
curl -H "Authorization: Bearer adt_…" "https://tools.funwords.eu/contract-risk?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
curl "https://tools.funwords.eu/contract-risk?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&api_key=adt_…"
Without a key the same URL answers 402 Payment Required with x402 and MPP terms, so a wallet client pays USDC per call and retries. Over MCP (https://tools.funwords.eu/mcp) this tool is contract_risk.
Example result
{
"chain": "base",
"address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"type": "contract",
"riskLevel": "low",
"riskFlags": [],
"summary": "low risk: 0 flag(s). Bytecode 8953 bytes.",
"facts": {
"bytecodeSize": 8953,
"deployedAt": null,
"hasCode": true,
"isProxy": false,
"proxyImplementation": null
},
"tokenProperties": {
"name": "USD Coin",
"symbol": "USDC",
"decimals": 6,
"totalSupply": "10000000000000",
"owner": "0x0000000000000000000000000000000000000001",
"ownershipRenounced": false,
"paused": null
},
"lastUpdatedBlock": 18650000
}Questions
Is a low verdict a safety guarantee?
No. It is heuristic screening from on-chain reads and DexScreener market data, not an audit.
Which chain?
Base. For token facts on other chains use the chain's token_info tool.
How do I pay?
Each successful call costs the tool's price; failed calls are not charged. The first 25 calls are free. Then pay with card credits from $1 (the key goes in an Authorization header or as api_key= in the URL) or per call in USDC over x402 or MPP. No account is needed.