Skip to main content
Glama
Baneado98

contract-auditor

by Baneado98
README.md
# contract-auditor 🛡️

**Quick-scan a smart contract for rug / honeypot / centralization risk before you approve or send funds.**

`contract-auditor` is an [MCP](https://modelcontextprotocol.io) server **and** a pay-per-call [x402](https://x402.org) HTTP API. Give it a deployed contract `address + chain` (or raw Solidity source) and it returns a **SAFE / CAUTION / HIGH-RISK** verdict with an explained risk score.

It combines three things an AI agent can't gather on its own from a chat:

1. **Verified source** from [Sourcify](https://sourcify.dev) (key-less, multi-chain) — or the *absence* of it (a strong red flag).
2. **Live on-chain state** via public RPC — is there code at all? Is it an **upgradeable proxy** (owner can swap the code)? Who is the **owner**, and is it a single EOA, a multisig, or **renounced**?
3. **Heuristic Solidity scan** for the real ways a contract takes or freezes your funds.

> ⚠️ **Heuristic quick-scan, not a formal audit.** Absence of findings is not proof of safety. Always do your own research before sending funds.

## What it catches

| | |
|---|---|
| 🔁 **Upgradeable proxy** | EIP-1967 / 1167 / beacon — the owner can replace the audited code |
| 👑 **Owner powers** | mint, pause, blacklist, owner-adjustable fees/tax, max-tx limits, trading on/off, withdraw/sweep |
| 💀 **Dangerous primitives** | `selfdestruct`, `delegatecall`, `tx.origin` auth, arbitrary external calls, inline assembly |
| 🍯 **Honeypot signals** | can't-sell patterns: blacklist + uncapped tax + trading switch + wallet/tx caps |
| 🔓 **Owner status** | live on-chain: renounced, single EOA (one key), or multisig/timelock? |
| ❓ **Unverified** | no verified source on Sourcify = you can't read what you're trusting |

## Use as an MCP server (free)

```json
{
  "mcpServers": {
    "contract-auditor": { "command": "npx", "args": ["-y", "contract-auditor-mcp"] }
  }
}
```

Tool: **`audit_contract`** — params: `address`, `chain` (alias or chainId), `source` (optional raw Solidity), `deep` (boolean).

Or connect over HTTP at `POST /mcp`.

## Free HTTP API

```
GET https://contract-auditor-ivory.vercel.app/audit?address=0xdAC17F958D2ee523a2206206994597C13D831ec7&chain=ethereum
GET https://contract-auditor-ivory.vercel.app/audit?address=0x...&chain=base
```

Supported chains: `ethereum`, `base`, `optimism`, `arbitrum`, `polygon`, `bsc`, `avalanche`, `gnosis`, `celo` (or a numeric chainId). Free tier is rate-limited to 30 requests/hour/IP.

## Pay-per-call (x402)

The `/pro/audit` route is gated by [x402](https://x402.org). Your agent pays **$0.25 USDC** per call automatically — no sign-up, no API key — settling on-chain (USDC on Base) to the operator wallet.

```
GET /pro/audit?address=0x...&chain=ethereum   # 402 → pay → result
```

## How it works (honest about the limits)

- Source is fetched from **Sourcify** by `(chainId, address)`. If a contract is only verified on a native explorer and not mirrored to Sourcify, it shows as *unverified* here — pass the `source` directly to scan it.
- On-chain checks use **public RPCs** (best-effort, community endpoints). If a chain's RPC is briefly down the audit degrades to a source-only verdict.
- The Solidity scan is **static pattern/heuristic analysis** with comment-stripping and owner-gating context. It is tuned for low false-alarm on well-known patterns, but it is **not** symbolic execution or a formal verifier.

## License

MIT

TDQS

A4.5/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of confusion between tools. The tool's purpose is clearly described.

Naming Consistency5/5

Single tool has a clear verb_noun name ('audit_contract'), which is consistent with itself and follows a predictable pattern.

Tool Count4/5

One tool is borderline but acceptable given the narrow focus of the server. The tool is comprehensive and not trivial.

Completeness5/5

The server fully covers its stated purpose of performing a quick security scan. No obvious gaps for the intended use case.

Maintenance

ActivityMaintained
ResponsivenessSyncing