verify_contract
Verify a contract and get one label. Runs all seven putty checks — template match, static analysis, permission diff, hook permission read, tests + fork, invariants, plain-English readback — and returns the report, the label, and what the label means. FREE, and it spends nothing: this tool never touches the credit ledger, because a deterministic security check is included in every deploy and safety is not an upsell. Send `chain` and `abi`; every other field unlocks a check that otherwise SKIPS, and a skip is reported as `skipped` with a reason rather than as a pass. `clearedForMainnet` is always `false` — no putty report, of any label, is an external audit. The paid AI review is NOT this tool and is not exposed to MCP at all: a tool that spends credits has to go through the run approval path, and this one does not need to.
Verify a contract and get one label. Runs all seven putty checks — template match, static analysis, permission diff, hook permission read, tests + fork, invariants, plain-English readback — and returns the report, the label, and what the label means. FREE, and it spends nothing: this tool never touches the credit ledger, because a deterministic security check is included in every deploy and safety is not an upsell. Send chain and abi; every other field unlocks a check that otherwise SKIPS, and a skip is reported as skipped with a reason rather than as a pass. clearedForMainnet is always false — no putty report, of any label, is an external audit. The paid AI review is NOT this tool and is not exposed to MCP at all: a tool that spends credits has to go through the run approval path, and this one does not need to.
Input
The tool takes a single JSON object. Every field, its type, and an example are on the generated reference at GET /mcp/tools, under this tool's name.
Calling it
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": { "name": "verify_contract", "arguments": {} }
}Put your arguments in place of the empty object. A call that fails comes back as a normal result carrying isError: true and a message naming what went wrong, not as a JSON-RPC protocol error.
Notes
The category is Verify, subcategory Verify. The full request and response shape, and a live playground, live on the generated reference at GET /mcp/tools.
verify_methods
Read what this deployment can actually verify, before verifying anything: the three labels and what each one means, the seven checks with their titles and their stated blind spots, whether this deployment can read a contract's owner or run a project's tests and fork simulation, and how many vetted templates are compiled here. Takes no arguments and is free. Call it first when you are about to tell a user what a label means — `liveReads` and `templates.compiled` decide which labels are reachable on this deployment, and both are facts about THIS deployment rather than about the contract. A deployment with no owner read and no sandbox reports `unknown` for every privileged function and skips tests-and-fork, which caps the label at `experimental` however clean the contract is.
List the caller's API keys GET
Returns every API key the authenticated user owns, including revoked ones. The plaintext is never included; only the id, label, prefix, last four, status, and timestamps.