POST /v1/contract/{id}/audit
Run audit for a contract project

Path Parameters

id string required path
Contract project ID

Responses

200 OK
application/json
code integer
data object
allDeployments object[]
Array of:
address string
blockNumber integer
chainId integer
deployedAt string
deploymentMode string
standard, create2, or create3
gasUsed integer
isDeterministic boolean
Whether CREATE2/CREATE3 was used
networkType string
mainnet or testnet
predictedAddress string
Pre-computed address for deterministic deployments
salt string
CREATE2/CREATE3 salt for deterministic address
txHash string
verificationStatus string
Verification status
Enum: pending, verified, failed
verificationUrl string
URL to view verified contract on block explorer
verified boolean
Whether contract source is verified on block explorer
auditReport object
findings object[]
Array of:
acknowledged boolean
category string
reentrancy, access-control, etc.
codeSnippet string
description string
location string
recommendation string
severity string
critical, high, medium, low, info
title string
passes string[]
Array of:
summary object
critical integer
high integer
info integer
low integer
medium integer
overallRisk string
low, medium, high, critical
recommendation string
deployment recommendation
timestamp string
autoFixAttempts integer
compilationFixAttempts integer
createdAt string
currentStep integer
deployments object
externalContractId string
id string
name string
organizationId string
planSummary string
sessionId string
source object
abi string
Compiled artifacts (populated after compilation)
bytecode string
Deployment bytecode
compilerOutput string
Metadata
constructorAbi string
Constructor info
contractCode string
Main contract Solidity source (flattened or with imports)
contractName string
Main contract (required)
dependencies object
package → version (e.g., "@openzeppelin/contracts" → "v5.0.0")
deployedCode string
Runtime bytecode
files object
Multi-file project support Key: relative path (e.g., "src/interfaces/IERC20.sol") Value: file content
mainContract string
Path to main contract file (e.g., "src/MyToken.sol")
solVersion string
Solidity version (e.g., "0.8.20")
summary string
Non-technical summary generated by AI
testCode string
Foundry test file source
version integer
Source version (increments on each edit)
status string
Enum: planned, generating, code_generated, testing, tested, auditing, audited, deploying, testnet_deployed, mainnet_deployed, failed
testResults object
autoFixed boolean
failed integer
failures string[]
Array of:
fixAttempts integer
log string
passed integer
runAt string
total integer
updatedAt string
walletId string
message string
requestId string
400 Bad Request
404 Not Found
500 Internal Server Error
curl -X POST 'https://api.example.com/v1/contract/string/audit' \  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://api.example.com/v1/contract/string/audit', {  method: 'POST',  headers: {      "Authorization": "Bearer YOUR_API_TOKEN"  }});const data = await response.json();console.log(data);
import requestsheaders = {    'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.post('https://api.example.com/v1/contract/string/audit', headers=headers)print(response.json())
package mainimport (	"fmt"	"io"	"net/http")func main() {	req, _ := http.NewRequest("POST", "https://api.example.com/v1/contract/string/audit", nil)	req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")	resp, _ := http.DefaultClient.Do(req)	defer resp.Body.Close()	result, _ := io.ReadAll(resp.Body)	fmt.Println(string(result))}
200 Response
{  "code": 200,  "data": {    "allDeployments": [      {        "address": "<string>",        "blockNumber": 123,        "chainId": 123,        "deployedAt": "<string>",        "deploymentMode": "<string>",        "gasUsed": 123,        "isDeterministic": true,        "networkType": "<string>",        "predictedAddress": "<string>",        "salt": "<string>",        "txHash": "<string>",        "verificationStatus": "pending",        "verificationUrl": "<string>",        "verified": true      }    ],    "auditReport": {      "findings": [        {          "acknowledged": true,          "category": "<string>",          "codeSnippet": "<string>",          "description": "<string>",          "location": "<string>",          "recommendation": "<string>",          "severity": "<string>",          "title": "<string>"        }      ],      "passes": [        "<string>"      ],      "summary": {        "critical": 123,        "high": 123,        "info": 123,        "low": 123,        "medium": 123,        "overallRisk": "<string>",        "recommendation": "<string>"      },      "timestamp": "<string>"    },    "autoFixAttempts": 123,    "compilationFixAttempts": 123,    "createdAt": "<string>",    "currentStep": 123,    "deployments": "<object>",    "externalContractId": "<string>",    "id": "<string>",    "name": "<string>",    "organizationId": "<string>",    "planSummary": "<string>",    "sessionId": "<string>",    "source": {      "abi": "<string>",      "bytecode": "<string>",      "compilerOutput": "<string>",      "constructorAbi": "<string>",      "contractCode": "<string>",      "contractName": "<string>",      "dependencies": "<object>",      "deployedCode": "<string>",      "files": "<object>",      "mainContract": "<string>",      "solVersion": "<string>",      "summary": "<string>",      "testCode": "<string>",      "version": 123    },    "status": "planned",    "testResults": {      "autoFixed": true,      "failed": 123,      "failures": [        "<string>"      ],      "fixAttempts": 123,      "log": "<string>",      "passed": 123,      "runAt": "<string>",      "total": 123    },    "updatedAt": "<string>",    "walletId": "<string>"  },  "message": "success",  "requestId": "abc-123"}
Ask a question... ⌘I