{"openapi":"3.1.0","info":{"title":"Sentinel Security Agent — Smart Contract Auditor","description":"Production-grade multi-chain smart contract security audit API. AI-powered analysis for Solidity, Vyper, Rust, Move, and Cairo across 16+ chains.","contact":{"name":"Sentinel Security Agent","url":"https://sentinelsecurity.pw/"},"license":{"name":"Commercial — contact for licensing"},"version":"4.2.0"},"paths":{"/audit":{"post":{"summary":"Audit","description":"Full smart contract audit. Runs 14-layer core engine (default) or\nfull 55-layer SentinelV3 pipeline if full_pipeline=true.\nReturns all findings with severity, CVSS, fix code, and location.","operationId":"audit_audit_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/quick":{"post":{"summary":"Quick Scan","description":"Fast 3-layer triage scan (~50ms). Returns a risk verdict and top finding.\nUse for pre-screening before a full audit.","operationId":"quick_scan_audit_quick_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuickScanRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuickScanResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/basic":{"post":{"summary":"Audit Basic","description":"Free basic scan. Returns verdict, severity counts, score, and tier —\nbut NO finding details. Use to preview before paying for full audit.","operationId":"audit_basic_audit_basic_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasicAuditResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/payment/config":{"get":{"summary":"Payment Config","description":"Public: returns payment wallet, supported chains, tiers, and prices.","operationId":"payment_config_payment_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/payment/submit":{"post":{"summary":"Payment Submit","description":"Submit a transaction hash for payment verification.\nChecks the blockchain via explorer API to confirm payment.","operationId":"payment_submit_payment_submit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentSubmitRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentSubmitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/paid":{"post":{"summary":"Audit Paid","description":"Full audit unlocked by payment. Requires a valid payment_id from /payment/submit.\nReturns complete findings with descriptions, fix_code, PoC, etc.","operationId":"audit_paid_audit_paid_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaidAuditRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/payment/{payment_id}/status":{"get":{"summary":"Payment Status","description":"Check payment status and retry eligibility.","operationId":"payment_status_payment__payment_id__status_get","parameters":[{"name":"payment_id","in":"path","required":true,"schema":{"type":"string","title":"Payment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/paid/retry":{"post":{"summary":"Audit Paid Retry","description":"Retry a failed paid audit. Reuses original payment — max 3 retries.","operationId":"audit_paid_retry_audit_paid_retry_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetryAuditRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/history/{wallet}":{"get":{"summary":"Audit History","description":"Get all past audits for a wallet address. Public endpoint (no API key required).\nReturns payment records with audit results attached.\n\nQuery params:\n  - page: Page number (default 1)\n  - limit: Items per page (default 20, max 100)\n  - sort: \"date_desc\" (default) or \"date_asc\"\n  - verdict: Filter by \"VULNERABLE\" or \"CLEAR\" (optional)","operationId":"audit_history_audit_history__wallet__get","parameters":[{"name":"wallet","in":"path","required":true,"schema":{"type":"string","title":"Wallet"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"date_desc","title":"Sort"}},{"name":"verdict","in":"query","required":false,"schema":{"type":"string","default":"","title":"Verdict"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/counterfactual":{"post":{"summary":"Audit Counterfactual","description":"Counterfactual perturbation analysis — what-if scenarios.\n\nReturns a list of Pearl-style do-calculus perturbations applicable to the\nsubmitted contract. Each perturbation names a symbolic state rewrite\n(totalSupply 2x, timestamp +1y, oracle halve, etc.) that an attacker\ncould plausibly induce via flash-loans, MEV, governance attacks, or\noracle manipulation.\n\nThe endpoint returns METADATA + optionally a synthesized Halmos spec body\npreview (`include_synthesized_specs=True`). Actual Halmos subprocess\nexecution is NOT run inline — users wanting VERIFIED/VIOLATION results\nshould use the offline Halmos pipeline with the returned spec bodies.\n\nHC #205 compliance: no user-visible severity emissions. Findings on this\nendpoint are INFORMATIONAL only (description of attack surface, not proof\nof vulnerability).\n\nIntended for Enterprise tier ($499) — latency-tolerant analysis flow.","operationId":"audit_counterfactual_audit_counterfactual_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CounterfactualRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CounterfactualResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/file":{"post":{"summary":"Audit File","description":"Upload a .sol or .vy file directly for auditing. Returns the same\nstructure as POST /audit.","operationId":"audit_file_audit_file_post","parameters":[{"name":"full_pipeline","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Full Pipeline"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_audit_file_audit_file_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/token":{"post":{"summary":"Audit Token","description":"Memecoin / token audit: bytecode-level rug signals + holder\ndistribution. No verified source required — works on any deployed\ntoken contract. **Public endpoint** — no API key required for\nfree tier (IP rate-limited).\n\nReturns combined findings from:\n- Bytecode signals: hidden_mint_function, blacklist_function,\n  pausable_token, settable_transfer_fee, selfdestruct_kill_switch,\n  ownership_present (if ERC-20)\n- Holder analysis: holder_concentration_*, dev_wallet_*, holder_count_*,\n  lp_locked_or_burned\n\nFree tier (no API key): 1 audit / IP / hour\nPaid tier (API key): unlimited\n\nChat M (M.4): every successful audit is persisted with a deterministic\naudit_id (sha256(chain:address)[:32]). The id is included in the\nresponse so the customer (or the frontend) can later fetch the same\nresult via `GET /audit/token/{audit_id}` or download the PDF via\n`GET /audit/token/report/{audit_id}?format=pdf`. If `wallet_address`\nis supplied, the audit is also bound to that wallet for the\n`GET /audit/token/history/{wallet}` listing.\n\nThis is a different product from /audit/address (full source-code\naudit). Use /audit/token for fast retail \"should I ape this\" checks.","operationId":"audit_token_audit_token_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenAuditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/token/report":{"post":{"summary":"Audit Token Report Inline","description":"Render a memecoin audit PDF from an inline JSON result. Stateless —\ndoes not consult the persisted TokenAuditRecord table. Useful for\nfree-tier customers who haven't bound a wallet.","operationId":"audit_token_report_inline_audit_token_report_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/token/report/{audit_id}":{"get":{"summary":"Audit Token Report By Id","description":"Re-render the PDF for a persisted token audit. Mirrors the\n`/report/download/{payment_id}` shape used by My Reports for protocol\naudits — same UX, different table.","operationId":"audit_token_report_by_id_audit_token_report__audit_id__get","parameters":[{"name":"audit_id","in":"path","required":true,"schema":{"type":"string","title":"Audit Id"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"pdf","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/token/history/{wallet}":{"get":{"summary":"Audit Token History","description":"List token audits bound to a wallet address. Paginated. Mirrors\n`/audit/history/{wallet}` for protocol audits (My Reports).","operationId":"audit_token_history_audit_token_history__wallet__get","parameters":[{"name":"wallet","in":"path","required":true,"schema":{"type":"string","title":"Wallet"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/token/history":{"get":{"summary":"Audit Token History By Ids","description":"List token audits by explicit audit_id set. Used by anonymous\nfree-tier customers — the frontend stores audit_ids in localStorage\nand sends them here. Comma-separated, max 100 ids.","operationId":"audit_token_history_by_ids_audit_token_history_get","parameters":[{"name":"ids","in":"query","required":false,"schema":{"type":"string","default":"","title":"Ids"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/token/{audit_id}":{"get":{"summary":"Audit Token Fetch","description":"Fetch the persisted JSON result for a previously-run token audit.","operationId":"audit_token_fetch_audit_token__audit_id__get","parameters":[{"name":"audit_id","in":"path","required":true,"schema":{"type":"string","title":"Audit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/address":{"post":{"summary":"Audit Address","description":"Fetch verified source code from Etherscan/Sourcify and audit it.\nSupports 11 chains: mainnet, arbitrum, base, bsc, polygon, optimism,\navalanche, celo, linea, blast, zksync.\n\nChat M (M.2): when `include_token_signals=true` is set on a paid\naudit and the contract is a likely-ERC20, the response also bundles\nbytecode-level rug signals + holder distribution analysis (the same\npipeline that `POST /audit/token` runs). Free / unverified contracts\ncan use `/audit/token` directly; this combined endpoint is for paid\ncustomers ($69+ tier) auditing source-verified tokens who want every\nsignal in a single response.","operationId":"audit_address_audit_address_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressAuditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/export/from-results":{"post":{"summary":"Export From Results","description":"Export pre-computed audit findings to a bounty platform format.\nAvoids re-running the audit — uses findings from the dashboard.\nSupported: immunefi, code4rena, sherlock, hackerone, hats, hackenproof, sarif","operationId":"export_from_results_export_from_results_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportFromResultsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/status":{"get":{"summary":"Status","description":"Engine health check and version info.","operationId":"status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"summary":"Health","description":"Deep health check — engine version, rule coverage, corpus stats, uptime.\nDesigned for load-balancer probes and monitoring dashboards.\nReturns styled HTML for browsers, JSON for API clients.","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/families":{"get":{"summary":"Families","description":"Endpoint removed — proprietary detection data.","operationId":"families_families_get","responses":{"410":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/cve-database":{"get":{"summary":"Cve Database","description":"List all 56 CVE mappings in SENTINEL's database.","operationId":"cve_database_cve_database_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/changelog":{"get":{"summary":"Api Changelog","description":"Machine-readable API changelog and versioning policy.","operationId":"api_changelog_api_changelog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/version":{"get":{"summary":"Api Version","description":"Returns current API version, supported versions, and deprecation status.","operationId":"api_version_api_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/metrics":{"get":{"summary":"Metrics","description":"Detailed engine performance metrics.","operationId":"metrics_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/metrics/prometheus":{"get":{"summary":"Metrics Prometheus","description":"Prometheus-compatible metrics in text exposition format.","operationId":"metrics_prometheus_metrics_prometheus_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/score":{"post":{"summary":"Score Contract","description":"Run a full audit and return a 0-100 security score with letter grade.\nAlso returns the findings breakdown by severity.","operationId":"score_contract_score_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/badge":{"post":{"summary":"Generate Badge","description":"Run a quick audit and return a shareable SVG badge.\nSuitable for embedding in GitHub READMEs and documentation.","operationId":"generate_badge_badge_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/monitor":{"post":{"summary":"Monitoring Plan","description":"Run audit and return a post-deployment monitoring plan:\nalerts, recommended tools (Forta, Tenderly, Defender),\ninvariants to watch, and Forta agent template code.","operationId":"monitoring_plan_monitor_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/report":{"post":{"summary":"Generate Report","description":"Generate a full multi-page audit report (PDF or HTML).\nRuns a complete audit and produces a branded, professional report\nwith executive summary, severity charts, detailed findings, and methodology.","operationId":"generate_report_report_post","parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"pdf","title":"Format"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/report/download/{payment_id}":{"get":{"summary":"Download Report","description":"Re-download a previously generated audit report by payment_id.\nWallet holders can recover their PDF/HTML reports anytime.","operationId":"download_report_report_download__payment_id__get","parameters":[{"name":"payment_id","in":"path","required":true,"schema":{"type":"string","title":"Payment Id"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"pdf","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/export/{platform}":{"post":{"summary":"Export Findings","description":"Export audit findings in platform-specific format.\nSupported: immunefi, code4rena, sherlock, hackerone, hats, hackenproof, sarif","operationId":"export_findings_export__platform__post","parameters":[{"name":"platform","in":"path","required":true,"schema":{"type":"string","title":"Platform"}},{"name":"project_name","in":"query","required":false,"schema":{"type":"string","default":"","title":"Project Name"}},{"name":"contest_name","in":"query","required":false,"schema":{"type":"string","default":"","title":"Contest Name"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/certificate":{"post":{"summary":"Generate Certificate","description":"Generate a 1-page audit certificate (HTML or PDF).\nUse format=html (default) for embeddable certificate.\nUse format=pdf for downloadable certificate.","operationId":"generate_certificate_certificate_post","parameters":[{"name":"contract_address","in":"query","required":false,"schema":{"type":"string","default":"","title":"Contract Address"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"html","title":"Format"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/leaderboard":{"get":{"summary":"Leaderboard","description":"Public leaderboard — top audit scores from all scans on the platform.","operationId":"leaderboard_leaderboard_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/monitor/register":{"post":{"summary":"Monitor Register","description":"Register a contract for continuous monitoring.","operationId":"monitor_register_monitor_register_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/monitor/list":{"get":{"summary":"Monitor List","description":"List active monitors. If wallet provided, returns only that wallet's + community monitors.","operationId":"monitor_list_monitor_list_get","parameters":[{"name":"wallet","in":"query","required":false,"schema":{"type":"string","default":"","title":"Wallet"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/monitor/stats":{"get":{"summary":"Monitor Stats","description":"Get monitoring statistics.","operationId":"monitor_stats_monitor_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/monitor/alerts":{"get":{"summary":"Monitor Alerts","description":"Get alert history, optionally filtered by monitor ID.","operationId":"monitor_alerts_monitor_alerts_get","parameters":[{"name":"monitor_id","in":"query","required":false,"schema":{"type":"string","title":"Monitor Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/audit/async":{"post":{"summary":"Audit Async","description":"Submit audit for async processing. Returns job_id for polling.\nOptionally deliver results via webhook when complete.","operationId":"audit_async_api_v1_audit_async_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/_AsyncAuditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/audit/{job_id}/status":{"get":{"summary":"Audit Job Status","description":"Poll async audit job status. Returns result when completed.","operationId":"audit_job_status_api_v1_audit__job_id__status_get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/challenge":{"post":{"summary":"Auth Challenge","description":"Generate a signing challenge for wallet authentication.","operationId":"auth_challenge_auth_challenge_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/_AuthChallengeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/verify":{"post":{"summary":"Auth Verify","description":"Verify signed message and issue JWT token.","operationId":"auth_verify_auth_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/_AuthVerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/user/audits":{"get":{"summary":"User Audit History","description":"List all audits for the authenticated user.","operationId":"user_audit_history_user_audits_get","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/user/profile":{"get":{"summary":"User Profile","description":"Get authenticated user profile and stats.","operationId":"user_profile_user_profile_get","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/token-check":{"get":{"tags":["B2B"],"summary":"Token security check for DEX integrations","description":"Lightweight token security check optimized for DEX platform integrations.\nReturns a security score (0-100), risk flags, and severity in sub-second time.\n\n**Free tier:** 5 requests/min (no API key).\n**B2B tier:** 60 requests/min (with API key).\n\nContact sentinel@proton.me for enterprise API keys (1,000-unlimited scans/day).","operationId":"token_check_get_api_v1_token_check_get","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","title":"Address"}},{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"mainnet","title":"Chain"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["B2B"],"summary":"Token security check (POST)","description":"POST variant of token-check for batch integrations.","operationId":"token_check_post_api_v1_token_check_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenCheckRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/verify-source":{"post":{"summary":"Verify Source Against Bytecode","description":"Compare submitted source code against deployed on-chain bytecode.\nReturns match score and mismatch details.","operationId":"verify_source_against_bytecode_api_v1_verify_source_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceVerifyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/audit/{audit_id}/feedback":{"post":{"summary":"Submit Finding Feedback","description":"Submit per-finding feedback (confirmed/false_positive/not_applicable) for a completed audit.","operationId":"submit_finding_feedback_api_v1_audit__audit_id__feedback_post","parameters":[{"name":"audit_id","in":"path","required":true,"schema":{"type":"string","title":"Audit Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindingFeedbackRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/corpus/contribute":{"post":{"summary":"Contribute To Corpus","description":"Opt-in corpus contribution — add a contract to the training data set.","operationId":"contribute_to_corpus_api_v1_corpus_contribute_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorpusContributionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/audit/diff":{"post":{"summary":"Audit Diff","description":"Compare audit results between two versions of a contract.\nReturns findings added, removed, and unchanged.","operationId":"audit_diff_api_v1_audit_diff_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditDiffRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/subscription":{"post":{"summary":"Create Subscription","description":"Create a recurring monitoring subscription for a contract.","operationId":"create_subscription_api_v1_subscription_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/subscription/{sub_id}":{"get":{"summary":"Get Subscription","description":"Get subscription status.","operationId":"get_subscription_api_v1_subscription__sub_id__get","parameters":[{"name":"sub_id","in":"path","required":true,"schema":{"type":"string","title":"Sub Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Cancel Subscription","description":"Cancel a subscription.","operationId":"cancel_subscription_api_v1_subscription__sub_id__delete","parameters":[{"name":"sub_id","in":"path","required":true,"schema":{"type":"string","title":"Sub Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/subscriptions/{wallet}":{"get":{"summary":"List Subscriptions","description":"List all subscriptions for a wallet.","operationId":"list_subscriptions_api_v1_subscriptions__wallet__get","parameters":[{"name":"wallet","in":"path","required":true,"schema":{"type":"string","title":"Wallet"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/register":{"post":{"summary":"Register Partner","description":"Register a white-label partner configuration.","operationId":"register_partner_api_v1_partner_register_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhiteLabelConfig"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/{partner_id}/audit":{"post":{"summary":"Partner Audit","description":"White-label audit — same engine, partner branding in response.","operationId":"partner_audit_api_v1_partner__partner_id__audit_post","parameters":[{"name":"partner_id","in":"path","required":true,"schema":{"type":"string","title":"Partner Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/partner/{partner_id}/stats":{"get":{"summary":"Partner Stats","description":"Partner usage stats placeholder.","operationId":"partner_stats_api_v1_partner__partner_id__stats_get","parameters":[{"name":"partner_id","in":"path","required":true,"schema":{"type":"string","title":"Partner Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AddressAuditRequest":{"properties":{"address":{"type":"string","title":"Address"},"chain":{"type":"string","title":"Chain","default":"mainnet"},"include_gas_report":{"type":"boolean","title":"Include Gas Report","default":false},"include_token_signals":{"type":"boolean","title":"Include Token Signals","default":false}},"type":"object","required":["address"],"title":"AddressAuditRequest"},"AuditDiffRequest":{"properties":{"source_v1":{"type":"string","title":"Source V1"},"source_v2":{"type":"string","title":"Source V2"},"filename":{"type":"string","title":"Filename","default":"contract.sol"}},"type":"object","required":["source_v1","source_v2"],"title":"AuditDiffRequest"},"AuditFinding":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","title":"Type"},"severity":{"type":"string","title":"Severity"},"title":{"type":"string","title":"Title"},"location":{"type":"string","title":"Location"},"description":{"type":"string","title":"Description"},"fix_code":{"type":"string","title":"Fix Code","default":""},"confidence":{"type":"number","title":"Confidence","default":0.0},"cvss_score":{"type":"number","title":"Cvss Score","default":0.0},"layer":{"type":"string","title":"Layer","default":""},"poc_sketch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Poc Sketch"},"evidence":{"additionalProperties":true,"type":"object","title":"Evidence","default":{}},"ai_validation":{"additionalProperties":true,"type":"object","title":"Ai Validation","default":{}},"explanation":{"additionalProperties":true,"type":"object","title":"Explanation","default":{}},"severity_rationale":{"items":{"type":"string"},"type":"array","title":"Severity Rationale","default":[]}},"type":"object","required":["id","type","severity","title","location","description"],"title":"AuditFinding"},"AuditRequest":{"properties":{"source_code":{"type":"string","title":"Source Code"},"filename":{"type":"string","title":"Filename","default":"contract.sol"},"full_pipeline":{"type":"boolean","title":"Full Pipeline","default":false},"include_gas_report":{"type":"boolean","title":"Include Gas Report","default":false},"ai_brain":{"type":"boolean","title":"Ai Brain","default":true},"tos_accepted":{"type":"boolean","title":"Tos Accepted","default":true},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"},"intent":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Intent","description":"Describe what the contract should do (improves AI analysis)"},"contract_logo_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Contract Logo Id","description":"Pre-uploaded logo id (from POST /upload/logo) — rendered on the PDF cover"},"intent_description":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Intent Description","description":"Short contract intent label shown on the PDF cover (max 100 chars; sanitized + length-capped to minimize prompt-injection surface before reaching AI verifier layers)"},"address":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Address","description":"On-chain address of the scanned contract (optional, for trading-bot harvest hook)"},"chain":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Chain","description":"Chain identifier for the scanned contract (e.g. solana, bsc, ethereum)"}},"type":"object","required":["source_code"],"title":"AuditRequest"},"AuditResponse":{"properties":{"verdict":{"type":"string","title":"Verdict"},"contract_hash":{"type":"string","title":"Contract Hash"},"filename":{"type":"string","title":"Filename"},"timestamp":{"type":"string","title":"Timestamp"},"layers_run":{"items":{"type":"string"},"type":"array","title":"Layers Run"},"total_findings":{"type":"integer","title":"Total Findings"},"critical":{"type":"integer","title":"Critical"},"high":{"type":"integer","title":"High"},"medium":{"type":"integer","title":"Medium"},"low":{"type":"integer","title":"Low"},"informational":{"type":"integer","title":"Informational"},"findings":{"items":{"$ref":"#/components/schemas/AuditFinding"},"type":"array","title":"Findings"},"duration_ms":{"type":"number","title":"Duration Ms"},"engine_version":{"type":"string","title":"Engine Version","default":"4.2.0"},"ai_enhanced":{"type":"boolean","title":"Ai Enhanced","default":false},"ai_degraded":{"type":"boolean","title":"Ai Degraded","default":false},"defense":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Defense","description":"Zero-day defense recommendations"},"provenance_sig":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provenance Sig","description":"ROAD-169b provenance fingerprint"},"formal_verification":{"additionalProperties":true,"type":"object","title":"Formal Verification","description":"ROAD-179 Phase 2 — proactive invariant verification results: {invariant_name: {status: VERIFIED|INCONCLUSIVE, description, counterexample?}}"},"risk_surface":{"items":{"$ref":"#/components/schemas/AuditFinding"},"type":"array","title":"Risk Surface","description":"ROAD-231 Arc A: broader-precision findings (investigate-only)"},"chat_token":{"type":"string","title":"Chat Token","description":"One-shot bearer token for chat endpoint; persist immediately","default":""},"prompt_injection_detected":{"type":"boolean","title":"Prompt Injection Detected","description":"SEC-PROMPT-INJ: True when source matched a known prompt-injection pattern","default":false}},"type":"object","required":["verdict","contract_hash","filename","timestamp","layers_run","total_findings","critical","high","medium","low","informational","findings","duration_ms"],"title":"AuditResponse"},"BasicAuditResponse":{"properties":{"verdict":{"type":"string","title":"Verdict"},"total_findings":{"type":"integer","title":"Total Findings"},"critical":{"type":"integer","title":"Critical"},"high":{"type":"integer","title":"High"},"medium":{"type":"integer","title":"Medium"},"low":{"type":"integer","title":"Low"},"informational":{"type":"integer","title":"Informational"},"security_score":{"type":"integer","title":"Security Score","default":0},"grade":{"type":"string","title":"Grade","default":""},"tier":{"type":"string","title":"Tier","default":""},"tier_label":{"type":"string","title":"Tier Label","default":""},"tier_price":{"additionalProperties":true,"type":"object","title":"Tier Price","default":{}},"loc":{"type":"integer","title":"Loc","default":0},"duration_ms":{"type":"number","title":"Duration Ms","default":0.0},"engine_version":{"type":"string","title":"Engine Version","default":"4.2.0"}},"type":"object","required":["verdict","total_findings","critical","high","medium","low","informational"],"title":"BasicAuditResponse"},"Body_audit_file_audit_file_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_audit_file_audit_file_post"},"CorpusContributionRequest":{"properties":{"source_hash":{"type":"string","title":"Source Hash"},"source_code":{"type":"string","title":"Source Code"},"chain":{"type":"string","title":"Chain","default":"ethereum"},"contract_name":{"type":"string","title":"Contract Name","default":""},"consent":{"type":"boolean","title":"Consent","default":false}},"type":"object","required":["source_hash","source_code"],"title":"CorpusContributionRequest"},"CounterfactualRequest":{"properties":{"source_code":{"type":"string","title":"Source Code"},"filename":{"type":"string","title":"Filename","default":"contract.sol"},"max_perturbations":{"type":"integer","title":"Max Perturbations","default":2},"include_synthesized_specs":{"type":"boolean","title":"Include Synthesized Specs","default":false},"tos_accepted":{"type":"boolean","title":"Tos Accepted","default":true}},"type":"object","required":["source_code"],"title":"CounterfactualRequest","description":"Counterfactual perturbation analysis — what-if scenario request."},"CounterfactualResponse":{"properties":{"contract_hash":{"type":"string","title":"Contract Hash"},"applicable_perturbations":{"items":{},"type":"array","title":"Applicable Perturbations"},"total_count":{"type":"integer","title":"Total Count"},"version":{"type":"string","title":"Version"},"note":{"type":"string","title":"Note"}},"type":"object","required":["contract_hash","applicable_perturbations","total_count","version","note"],"title":"CounterfactualResponse"},"ExportFromResultsRequest":{"properties":{"findings":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Findings"},"platform":{"type":"string","title":"Platform"},"project_name":{"type":"string","title":"Project Name","default":""},"contest_name":{"type":"string","title":"Contest Name","default":""}},"type":"object","required":["findings","platform"],"title":"ExportFromResultsRequest"},"FindingFeedbackRequest":{"properties":{"audit_id":{"type":"string","title":"Audit Id"},"feedbacks":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Feedbacks"}},"type":"object","required":["audit_id","feedbacks"],"title":"FindingFeedbackRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"PaidAuditRequest":{"properties":{"source_code":{"type":"string","title":"Source Code"},"filename":{"type":"string","title":"Filename","default":"contract.sol"},"payment_id":{"type":"string","title":"Payment Id"},"ai_brain":{"type":"boolean","title":"Ai Brain","default":true},"include_gas_report":{"type":"boolean","title":"Include Gas Report","default":false},"contract_address":{"type":"string","title":"Contract Address","default":""},"tos_accepted":{"type":"boolean","title":"Tos Accepted","default":true},"intent":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Intent","description":"Describe what the contract should do (improves AI analysis)"},"contract_logo_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Contract Logo Id","description":"H.1a — pre-uploaded logo id from POST /upload/logo"},"intent_description":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Intent Description","description":"H.1b — short contract intent label for the PDF cover (≤100 chars; sanitized then merged into AI verifier context)"}},"type":"object","required":["source_code","payment_id"],"title":"PaidAuditRequest"},"PaymentSubmitRequest":{"properties":{"tx_hash":{"type":"string","title":"Tx Hash"},"chain":{"type":"string","title":"Chain"},"sender_address":{"type":"string","title":"Sender Address"},"token":{"type":"string","title":"Token","default":"ETH"},"tier":{"type":"string","title":"Tier","default":"audit"},"contract_hash":{"type":"string","title":"Contract Hash","default":""},"email":{"type":"string","title":"Email","default":""}},"type":"object","required":["tx_hash","chain","sender_address"],"title":"PaymentSubmitRequest"},"PaymentSubmitResponse":{"properties":{"verified":{"type":"boolean","title":"Verified"},"payment_id":{"type":"string","title":"Payment Id","default":""},"amount":{"type":"string","title":"Amount","default":""},"confirmations":{"type":"integer","title":"Confirmations","default":0},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["verified"],"title":"PaymentSubmitResponse"},"QuickScanRequest":{"properties":{"source_code":{"type":"string","title":"Source Code"},"filename":{"type":"string","title":"Filename","default":"contract.sol"}},"type":"object","required":["source_code"],"title":"QuickScanRequest"},"QuickScanResponse":{"properties":{"verdict":{"type":"string","title":"Verdict"},"risk_score":{"type":"number","title":"Risk Score"},"critical_count":{"type":"integer","title":"Critical Count"},"high_count":{"type":"integer","title":"High Count"},"top_finding":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Top Finding"},"duration_ms":{"type":"number","title":"Duration Ms"}},"type":"object","required":["verdict","risk_score","critical_count","high_count","top_finding","duration_ms"],"title":"QuickScanResponse"},"RetryAuditRequest":{"properties":{"payment_id":{"type":"string","title":"Payment Id"},"source_code":{"type":"string","title":"Source Code"},"filename":{"type":"string","title":"Filename","default":"contract.sol"},"tos_accepted":{"type":"boolean","title":"Tos Accepted","default":true}},"type":"object","required":["payment_id","source_code"],"title":"RetryAuditRequest"},"SourceVerifyRequest":{"properties":{"address":{"type":"string","title":"Address"},"chain":{"type":"string","title":"Chain","default":"mainnet"},"source_code":{"type":"string","title":"Source Code"}},"type":"object","required":["address","source_code"],"title":"SourceVerifyRequest"},"SubscriptionCreateRequest":{"properties":{"wallet_address":{"type":"string","title":"Wallet Address"},"contract_address":{"type":"string","title":"Contract Address"},"chain":{"type":"string","title":"Chain","default":"mainnet"},"plan":{"type":"string","title":"Plan","default":"basic"},"webhook_url":{"type":"string","title":"Webhook Url","default":""}},"type":"object","required":["wallet_address","contract_address"],"title":"SubscriptionCreateRequest"},"TokenAuditRequest":{"properties":{"address":{"type":"string","title":"Address"},"chain":{"type":"string","title":"Chain","default":"mainnet"},"wallet_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wallet Address"}},"type":"object","required":["address"],"title":"TokenAuditRequest"},"TokenCheckRequest":{"properties":{"address":{"type":"string","title":"Address"},"chain":{"type":"string","title":"Chain","default":"mainnet"}},"type":"object","required":["address"],"title":"TokenCheckRequest"},"TokenCheckResponse":{"properties":{"address":{"type":"string","title":"Address"},"chain":{"type":"string","title":"Chain"},"score":{"type":"integer","title":"Score"},"verdict":{"type":"string","title":"Verdict"},"risks":{"items":{},"type":"array","title":"Risks"},"severity":{"type":"string","title":"Severity"},"is_honeypot":{"type":"boolean","title":"Is Honeypot"},"owner_can_mint":{"type":"boolean","title":"Owner Can Mint"},"has_proxy":{"type":"boolean","title":"Has Proxy"},"owner_renounced":{"type":"boolean","title":"Owner Renounced"},"findings_count":{"type":"integer","title":"Findings Count"},"critical":{"type":"integer","title":"Critical"},"high":{"type":"integer","title":"High"},"medium":{"type":"integer","title":"Medium"},"low":{"type":"integer","title":"Low"},"scan_time_ms":{"type":"number","title":"Scan Time Ms"},"engine_version":{"type":"string","title":"Engine Version","default":"4.2.0"}},"type":"object","required":["address","chain","score","verdict","risks","severity","is_honeypot","owner_can_mint","has_proxy","owner_renounced","findings_count","critical","high","medium","low","scan_time_ms"],"title":"TokenCheckResponse"},"TokenReportRequest":{"properties":{"result":{"additionalProperties":true,"type":"object","title":"Result"}},"type":"object","required":["result"],"title":"TokenReportRequest","description":"Inline-render path: customer POSTs the JSON result they already have\nin memory (e.g. a free-tier user clicking 'Download PDF' right after\nseeing the result on screen). Avoids a server-side fetch round-trip."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WhiteLabelConfig":{"properties":{"partner_name":{"type":"string","title":"Partner Name"},"partner_logo_url":{"type":"string","title":"Partner Logo Url","default":""},"brand_color":{"type":"string","title":"Brand Color","default":"#00d4ff"},"report_footer":{"type":"string","title":"Report Footer","default":""}},"type":"object","required":["partner_name"],"title":"WhiteLabelConfig"},"_AsyncAuditRequest":{"properties":{"source_code":{"type":"string","title":"Source Code"},"filename":{"type":"string","title":"Filename","default":"contract.sol"},"ai_brain":{"type":"boolean","title":"Ai Brain","default":true},"include_gas_report":{"type":"boolean","title":"Include Gas Report","default":false},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"},"tos_accepted":{"type":"boolean","title":"Tos Accepted","default":true}},"type":"object","required":["source_code"],"title":"_AsyncAuditRequest"},"_AuthChallengeRequest":{"properties":{"wallet_address":{"type":"string","title":"Wallet Address"}},"type":"object","required":["wallet_address"],"title":"_AuthChallengeRequest"},"_AuthVerifyRequest":{"properties":{"wallet_address":{"type":"string","title":"Wallet Address"},"signature":{"type":"string","title":"Signature"},"nonce":{"type":"string","title":"Nonce"}},"type":"object","required":["wallet_address","signature","nonce"],"title":"_AuthVerifyRequest"}}}}