OMNI Contract Audit
● x402 · USDC on Base mainnet

Solidity security reports your agent can buy in one HTTP call.

Send a verified Base contract address or raw Solidity source. Get a signed JSON report: findings by severity, a risk rating, and a map of what the owner can do. You aren't charged if the code won't compile.

Quick scan

$1 USDC
  • Slither high and medium detectors
  • Risk rating: LOW / MEDIUM / HIGH
  • Ed25519-signed report plus a receipt bound to the payment
  • About 1 second for typical contracts
POST /port/5000/v1/contract-audit/quick

Deep review

$25 USDC
  • Every Slither detector, including low and informational
  • Owner-power map: mint, blacklist, pause, upgrade, fees, sweep
  • Proxy and upgradeability detection
  • Known false positives marked and kept out of the rating
POST /port/5000/v1/contract-audit/deep

Call it

Any x402 v2 client works. An unpaid request returns 402 with a payment-required header (scheme exact, network eip155:8453, USDC). Sign it and retry with payment-signature.

The payment authorization is verified, the analysis runs in an isolated sandbox, and settlement is attempted only after a signed report exists. Invalid input (400) or failed analysis (422) is never settled and says charged:false. The report is released only when the USDC transfer is proven on Base. If settlement is still unconfirmed, you get 202 SETTLEMENT_PENDING: resend the identical request to collect the report once it confirms, or a 402 charged:false if it never does. One authorization buys exactly one report and is never charged twice.

Input is {"address","chain_id"} for a Sourcify-verified contract, {"source"} for one file, or {"sources":{path:src},"target"} for several.

curl -i -X POST https://omni-audit.pplx.app/port/5000/v1/contract-audit/quick \
  -H 'content-type: application/json' \
  -d '{"address":"0x4200000000000000000000000000000000000006","chain_id":8453}'
# → 402 payment-required (1000000 = 1.00 USDC)

# with an x402 client, e.g. @x402/fetch:
const res = await fetchWithPayment(URL, {
  method: "POST", headers: {"content-type":"application/json"},
  body: JSON.stringify({ source: soliditySource })
});
EndpointPriceNotes
GET /port/5000/v1/contract-auditfreePrices, input schema, signing key
GET /port/5000/v1/contract-audit/samplefreeA real deep report on WETH9 (Base)
GET /port/5000/.well-known/omni-audit-keyfreeEd25519 JWK for checking signatures with the standalone verify-report.mjs
POST …/quick1.00 USDC1000000 atomic
POST …/deep25.00 USDC25000000 atomic

Benchmark

Run before launch against contracts with known bugs and contracts with none. Every test contract and test is in the published source.

CaseExpectedResult
Reentrancy, tx.origin auth, unprotected selfdestruct, unchecked call, arbitrary ETH send, controlled delegatecall, uninitialized storage7 bugs7 / 7 detected
Safe bank, plain ERC-20, counterno high/medium0 / 3 falsely flagged
USDC implementation on Base (23 files)admin controlsmint, blacklist, pause, rescue mapped
USDC proxyproxy pattern, not a bug4 proxy false positives marked, rating LOW

Signing key fingerprint: urn:omni:sirfixall:audit-key:6eb59bd293c7a003

Sample report

A live deep-tier report on WETH9, the wrapped ETH contract on Base, fetched from the service:

Loading…

Limits

This is automated static analysis using Slither (Trail of Bits, open source) plus OMNI's owner-power mapping. It is not a comprehensive independent security audit or a manual review, and it can't prove code is safe. Economic, oracle, cross-contract and most business-logic flaws are out of scope. Nothing is executed on-chain. Only public source is fetched (Sourcify), and no transactions are sent.