Audit a contract
Returns a safety verdict, a human-readable summary, identity, and the detected risks for the given contract. Results are returned in milliseconds when the contract has been audited before; a first-time audit may take a few seconds.
Authorizations
Your secret API key. Create one from your dashboard.
Query Parameters
Chain the contract is deployed on, as a case-insensitive symbol. See Supported Chains.
ETH, OP, ARB, BASE, BSC, AVAX, APE, BLAST, LINEA, MANTLE, POLYGON, ZKEVM, SCROLL, SONIC, ZKSYNC, ABSTRACT, MONAD, PLASMA, MEGAETH, HYPE, ROBINHOOD, ARC, STABLE The contract address to audit.
^0x[a-fA-F0-9]{40}$Closed-source contracts are audited on decompiled bytecode (the most expensive tier). Set false to opt out: closed-source contracts then answer { "audit": null, "reason": "decompile_disabled" } instead of being decompiled, and cached decompiled verdicts are not served. Sent as the string "true"/"false" in the query.
true, false Async mode. false (default): the request holds until the audit is done, classic synchronous behavior. true: if no cached audit exists, the audit is started in the background and the response is { status }; poll the SAME URL every 1-2s until it flips to { audit } (typically 10-30s for a first-time audit). There is no job id: an audit is idempotent per (chain, address), so the token address is the job handle. Billing is identical in both modes; progress responses are never billed. With subscribe=true you do not even poll: the finished verdict is pushed to you (over your SSE stream or webhook) the moment it lands (see SSE & Webhooks).
true, false Subscribe this (chain, address) to push updates as part of this call. Once subscribed, any later verdict change (safe↔unsafe flip, owner change, a gate or honeypot flipping, or a closed-source token re-audited on its now-verified source) is pushed to you over a live SSE stream or a webhook, instead of you polling. Combined with async=true, the finished audit result is itself pushed when ready, so you fire the call and just consume the events. Subscribing works with or without a delivery transport configured; with neither, pull the changes from GET /api/events (see SSE & Webhooks). Charges the one-time subscribe fee for a genuinely-new token; idempotent for an already-subscribed one.
true, false Response
The audit verdict, wrapped in an audit object.
- Option 1
- Option 2
- Option 3
The response shape.
The audit result.
Echo of what this call was billed, present only for authenticated API-key callers (never for anonymous/browser traffic). type is the bill category (e.g. cached, fresh_no_decompile, fresh_with_decompile, refresh) or null when the call is free; credits is the amount metered.
