← Back to directory

Contract audit for Solidity and Vyper: give a verified contract address (Ethereu...

https://agent-data-tools.revmesh2074.workers.dev/contract/audit

Overview

Contract audit for Solidity and Vyper: give a verified contract address (Ethereum, Base, Arbitrum, Optimism, Polygon) or paste the source, and one call returns security findings by severity with function, line, exploit scenario and fix, who holds the owner and upgrade keys on chain, a score and a Markdown report, in about a minute. Automated review, not a manual audit. Use before deploying, integrating with or buying into a contract.

Protocol x402
Price $1.00
Payment Asset USD Coin
Payment Network eip155:8453
Category uncategorized
Provider Contract audit
Source bazaar
Indexed 2026-11-14 11:07:53

Health

Status unknown
Latency (p50) —
Uptime (30d) —
Reliability Score —
Last Checked Never
Last Healthy Never
Consecutive Failures 0

x402 Payment Validation

Payment Requirements —
Asset Verified —
Facilitator —

Input Schema

{ "method": "GET", "queryParams": { "source": "pragma solidity ^0.8.20; contract Vault { mapping(address => uint256) public balances; function deposit() external payable { balances[msg.sender] += msg.value; } function withdraw() external { (bool ok, ) = msg.sender.call{value: balances[msg.sender]}(\"\"); require(ok); balances[msg.sender] = 0; } }" }, "type": "http" }

Output Schema

{ "example": { "access": { "onChain": "not applicable: source was sent without an address", "owner": null, "paused": null, "privilegedFunctions": [ { "contract": "Vault", "function": "pause", "guard": "onlyOwner" } ], "proxyAdmin": null, "roles": [ { "powers": [ "pause withdrawals" ], "role": "owner" } ], "upgradeable": false }, "auditedAt": "2026-11-11T12:00:00.000Z", "contract": { "address": null, "chain": null, "compiler": "^0.8.20", "implementation": null, "language": "Solidity", "name": "Vault", "proxyType": null, "sourceFrom": "source sent by the caller", "type": "vault", "verified": null }, "counts": { "critical": 1, "high": 0, "info": 0, "low": 0, "medium": 0 }, "coverage": { "charactersReviewed": 290, "complete": true, "filesNotReviewed": [], "filesReviewed": [ "Contract.sol" ], "linesOfCode": 1, "reviewers": [ { "discarded": 0, "findings": 1, "id": "reviewer-logic", "model": "gpt-oss-120b", "status": "answered" } ], "secondLook": { "confirmed": 0, "refuted": 0, "uncertain": 0 }, "staticChecks": "1 pattern findings over 2 functions", "trustedLibraries": [] }, "findings": [ { "category": "reentrancy", "confidence": "high", "contract": "Vault", "description": "withdraw makes an external call and only afterwards writes balances.", "file": "Contract.sol", "foundBy": [ "static-check", "reviewer-funds", "reviewer-logic" ], "function": "withdraw", "id": "F-1", "line": 1, "recommendation": "Write state before the call and add a reentrancy guard.", "scenario": "A contract re-enters withdraw from its receive function.", "severity": "critical", "title": "State is updated after an external call (reentrancy)" } ], "limitations": "Not a manual audit and not a guarantee.", "method": "Automated review: static checks, on-chain key-holder reads and AI reviewers.", "report": "# Smart contract audit: Vault\n\n- **Verdict:** critical risk (score 55/100)", "score": 55, "summary": "Vault holds ETH per account. withdraw sends the ETH before it clears the balance, so a deposit can be withdrawn repeatedly.", "verdict": "critical-risk" }, "type": "json" }