Base token safety check / rug pull and honeypot detector for any ERC-20
Base token safety check / rug pull and honeypot detector for any ERC-20: owner and renounce status, upgradeable proxy, mint/blacklist/fee/pause selectors, Uniswap V2/V3 and Aerodrome liquidity, simulated buy/sell tax, 0-100 risk score. Every read is pinned to one Base block and the raw contract call results are returned as evidence. Includes a free re-check for 24h (checkId). Pay per call with x402 USDC on Base. Not financial advice.
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
GET https://grokbot-dashboard.a3migos.workers.dev/api/base/token-check
| Category | Market data |
|---|---|
| Provider host | grokbot-dashboard.a3migos.workers.dev |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 1 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
We never call tools that send, buy, move money or file anything, not even without paying.
Example input (from the provider)
{
"method": "GET",
"queryParams": {
"token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
},
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"properties": {
"token": {
"description": "Base ERC-20 token contract address",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
}
},
"required": [
"token"
],
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"block": {
"description": "Base block number every read was pinned to",
"type": "integer"
},
"blockTag": {
"description": "Same block as 0x hex (use it to reproduce the eth_calls)",
"type": "string"
},
"bytecodeSize": {
"type": "integer"
},
"cached": {
"type": "boolean"
},
"cachedAt": {
"format": "date-time",
"type": "string"
},
"chain": {
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
},
"type": "object"
},
"checkId": {
"description": "Id for the free 24h re-check",
"type": "string"
},
"checked": {
"items": {
"type": "string"
},
"type": "array"
},
"disclaimer": {
"type": "string"
},
"erc20": {
"properties": {
"decimals": {
"type": [
"integer",
"null"
]
},
"name": {
"type": [
"string",
"null"
]
},
"symbol": {
"type": [
"string",
"null"
]
},
"totalSupply": {
"type": [
"number",
"null"
]
},
"totalSupplyRaw": {
"type": [
"string",
"null"
]
}
},
"type": "object"
},
"evidence": {
"description": "Raw evidence: every JSON-RPC request made and its raw result, pinned to blockTag",
"properties": {
"block": {
"type": "integer"
},
"blockTag": {
"type": "string"
},
"calls": {
"type": "integer"
},
"items": {
"items": {
"properties": {
"address": {
"type": "string"
},
"block": {
"type": "string"
},
"call": {
"type": [
"string",
"null"
]
},
"data": {
"type": "string"
},
"error": {
"type": "string"
},
"method": {
"type": "string"
},
"result": {
"description": "raw hex result, or {bytes, keccak256} for bytecode"
},
"slot": {
"type": "string"
},
"slotName": {
"type": [
"string",
"null"
]
},
"stateOverride": {
"type": "object"
},
"to": {
"type": "string"
}
},
"required": [
"method"
],
"type": "object"
},
"type": "array"
},
"note": {
"type": "string"
}
},
"required": [
"blockTag",
"block",
"items"
],
"type": "object"
},
"factors": {
"items": {
"properties": {
"factor": {
"type": "string"
},
"points": {
"type": "integer"
}
},
"type": "object"
},
"type": "array"
},
"generatedAt": {
"format": "date-time",
"type": "string"
},
"honeypot": {
"properties": {
"amountIn": {
"type": "number"
},
"buyTaxPct": {
"type": [
"number",