Token security / honeypot detector for a Base mainnet ERC-20
Token security / honeypot detector for a Base mainnet ERC-20: EIP-1967/1822 proxy + upgradeability detection, bytecode dispatcher scan for mint/pause/blacklist/fee-setter/ownership selectors, owner() renouncement check, and a live eth_call state-override simulation testing whether a synthetic wallet can actually transfer() the token. Returns risk_score (0-100) + verdict (clear/review/block) + human-readable flags.
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://x402-data-api.sigrunner.workers.dev/chain/token-security
| Category | Market data |
|---|---|
| Provider host | x402-data-api.sigrunner.workers.dev |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 7 from 2 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": "0x-prefixed 20-byte ERC-20 contract address on Base mainnet",
"type": "string"
}
},
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"analyzed_at": {
"type": "string"
},
"capabilities": {
"properties": {
"can_burn": {
"type": "boolean"
},
"can_mint": {
"type": "boolean"
},
"can_pause": {
"type": "boolean"
},
"detected_selectors": {
"items": {
"properties": {
"category": {
"type": "string"
},
"selector": {
"type": "string"
},
"signature": {
"type": "string"
}
},
"required": [
"selector",
"signature",
"category"
],
"type": "object"
},
"type": "array"
},
"has_blacklist": {
"type": "boolean"
},
"has_fee_setter": {
"type": "boolean"
},
"has_ownership": {
"type": "boolean"
},
"scanned_address": {
"type": "string"
}
},
"required": [
"can_mint",
"can_burn",
"can_pause",
"has_blacklist",
"has_fee_setter",
"has_ownership",
"detected_selectors",
"scanned_address"
],
"type": "object"
},
"chain": {
"type": "string"
},
"flags": {
"items": {
"type": "string"
},
"type": "array"
},
"honeypot_sim": {
"properties": {
"balance_slot_index": {
"type": "null"
},
"method": {
"type": "string"
},
"note": {
"type": "string"
},
"revert_reason": {
"type": "null"
},
"sim_status": {
"type": "string"
},
"transferable": {
"type": "null"
}
},
"required": [
"sim_status",
"method",
"balance_slot_index",
"transferable",
"revert_reason",
"note"
],
"type": "object"
},
"is_contract": {
"type": "boolean"
},
"meta": {
"properties": {
"decimals": {
"type": "integer"
},
"name": {
"type": "string"
},
"symbol": {
"type": "string"
},
"total_supply_formatted": {
"type": "number"
},
"total_supply_raw": {
"type": "string"
}
},
"required": [
"name",
"symbol",
"decimals",
"total_supply_raw",
"total_supply_formatted"
],
"type": "object"
},
"ownership": {
"properties": {
"owner": {
"type": "string"
},
"owner_type": {
"type": "string"
},
"ownership_renounced": {
"type": "boolean"
}
},
"required": [
"owner",
"ownership_renounced",
"owner_type"
],
"type": "object"
},
"proxy": {
"properties": {
"admin_address": {
"type": "string"
},
"implementation_address": {
"type": "string"
},
"is_proxy": {
"type": "boolean"
},
"is_upgradeable": {
"type": "boolean"
},
"proxy_standard": {
"type": "string"
}
},
"required": [
"is_proxy",
"proxy_standard",
"implementation_address",
"admin_address",
"is_upgradeable"
],
"type": "object"
},
"risk_score": {
"type": "integer"
},
"risk_summary": {
"type": "string"
},
"token": {