Api Endpoint

dev.workers.dolerite.base-onchain-tools/base-onchain-tools

What an UNVERIFIED Base contract can actually do — the case where block explorers show you nothing. Disassembles the deployed bytecode with a PUSH-aware opcode walk (a naive byte scan reports SELFDESTRUCT on contracts that cannot self-destruct), strips the Solidity metadata trailer, recovers the function selectors from the dispatch table and names them against a keccak-derived signature database, then reports admin powers (mint, blacklist, freeze, pause, trading switches, adjustable fees, upgrade hooks), dangerous opcodes (DELEGATECALL, SELFDESTRUCT, CALLCODE, CREATE2), which token standards it really implements, and whether it supports EIP-3009 so it can be paid gaslessly over x402 at all. Proxies are detected and followed, because a forwarder's own bytecode tells you nothing.

Open interactive test console

Offering

Provider
base-onchain-tools.dolerite.workers.dev
Method
GET
Offering type
Api Endpoint
Transport type
http
Category
Blockchain And Crypto
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://base-onchain-tools.dolerite.workers.dev/v1/base/contract-audit
MIME type
Not provided
First seen
2026-10-16T03:02:07.735Z
Last seen
Tags
MCP, X402

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.04 USDC
Atomic price: 40000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "40000",
    "payTo": "0x9c9Fb14825ADcA7A3E539EDa354EAFd169D39e9b"
  }
]

Observed health

Status
Healthy
Latest latency
906 ms
Average latency
1179 ms
HTTP status
402
Last checked
Reachability
100% over 14 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "const": "http"
    },
    "method": {
      "type": "string",
      "enum": [
        "GET"
      ]
    },
    "queryParams": {
      "type": "object",
      "properties": {
        "address": {
          "type": "string",
          "description": "Contract address on Base mainnet"
        },
        "follow_proxy": {
          "type": "string",
          "description": "Optional, default true. Set to false to audit the proxy's own bytecode instead of its implementation."
        }
      },
      "required": [
        "address"
      ]
    }
  },
  "required": [
    "type",
    "method"
  ],
  "additionalProperties": false
}

Output schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string"
    },
    "example": {
      "type": "object"
    }
  },
  "required": [
    "type"
  ]
}