Base contract bytecode, proxy-slot and zero-supply heuristics

$0.02 per call · failed calls are never charged · no account or API key needed

Limited Base contract bytecode, EIP-1967 slot and zero-supply heuristics. Missing or unsupported property reads are null; RPC transport failures return 502. Ownership renunciation requires a confirmed zero owner. Empty slots do not identify uninitialized proxies. EOAs return not-applicable. Not a full security audit; see endpoint details for coverage limits. Use before approving or calling an unfamiliar Base contract.

Run it free (25 free calls) Buy credits by card (from $5) Example result (JSON)

Inputs

NameTypeDescription
address (required)stringBase chain contract address, 0x-prefixed 20-byte hex

Request

Over HTTP, with a card key from /credits:

curl -H "Authorization: Bearer adt_…" "https://agent-data-tools.revmesh2074.workers.dev/contract-risk?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"

Or one of your 25 free calls, no key:

curl "https://agent-data-tools.revmesh2074.workers.dev/contract-risk?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&trial=1"

Without a key, the same URL answers 402 Payment Required with x402 and MPP terms, so an agent with a wallet pays per call in USDC (Base, Polygon, Arbitrum, Monad, World Chain or Tempo) and retries.

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
}

From an AI agent (MCP)

Add the MCP server to Claude, Cursor or any MCP client. This tool is contract_risk, and the first 25 successful calls are free:

https://agent-data-tools.revmesh2074.workers.dev/mcp

Details and limits

Base contract bytecode size and EIP-1967 slot check (a confirmed zero slot returns isProxy false; an empty/unreadable slot response returns null; RPC failures return 502). A nonzero slot with a zero implementation flags proxy-impl-unset. ERC-20 property reads run only for 500–50,000-byte contracts; individual unsupported/reverting reads are null, while multicall transport failures return 502. Zero supply requires a successful zero read; ownershipRenounced is true only for zero owner, false for nonzero, else null; paused is null if unsupported. Risk tiers are limited bytecode/proxy/zero-supply heuristics, not a full audit; empty slots cannot identify uninitialized proxies. EOAs return not-applicable.

Related tools