Quick Solidity pre-audit check, $0.90 USDC on Base
Quick Solidity pre-audit check, $0.90 USDC on Base: send source or a verified contract address + chain; the same automated engine returns the verdict (grade, score, security and owner-trust risk), severity counts, the top 5 findings with location and fix, and owner powers found (mint, pause, blacklist, fees, upgrade). Triage, not a human audit; failed runs not charged. Every finding with code and detail: POST /v1/audit ($99). By DevX.
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://scaudit.madebydevx.com/v1/quick
| Category | Code and developer |
|---|---|
| Provider host | scaudit.madebydevx.com |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 1 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
We never call tools that send, buy, move money or file anything, not even without paying.
Example input (from the provider)
{
"body": {
"source": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\ncontract Vault { mapping(address=>uint) public bal; function withdraw() external { (bool ok,) = msg.sender.call{value: bal[msg.sender]}(\"\"); require(ok); bal[msg.sender] = 0; } }"
},
"bodyType": "json",
"discoverable": true,
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"additionalProperties": false,
"properties": {
"address": {
"description": "Deployed contract address whose source is verified on Sourcify (proxies: implementation is analysed too)",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"chain": {
"description": "Chain for address mode (default base): ethereum, mainnet, eth, base, optimism, op, arbitrum, arb, polygon, matic, bsc, bnb, gnosis, avalanche, avax, linea, scroll, sepolia, base-sepolia, or the numeric chain id",
"type": "string"
},
"requestKey": {
"description": "Optional idempotency key: same payer + requestKey + input within 7 days returns the stored report without a second charge.",
"maxLength": 128,
"minLength": 8,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,127}$",
"type": "string"
},
"source": {
"description": "Solidity source of one file (or a flattened file). Use this OR sources OR address.",
"maxLength": 256000,
"type": "string"
},
"sources": {
"additionalProperties": {
"type": "string"
},
"description": "Multi-file project: {\"contracts/Vault.sol\": \"...\", ...} (max 60 files, 250 KB total). Standard library paths (@openzeppelin/ etc.) are skipped.",
"type": "object"
}
},
"type": "object"
},
"bodyType": {
"enum": [
"json"
],
"type": "string"
},
"discoverable": {
"type": "boolean"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}