{"openapi":"3.1.0","info":{"title":"Kestrova","description":"Kestrova: Solidity smart-contract vulnerability scan (Slither static analysis) for AI coding agents. Send {\"sources\": {\"File.sol\": \"<source>\"}}; get every finding with detector, severity, confidence and line locations for 1 USDC on Solana (x402). Free preview at POST /preview and the remote MCP server at /mcp (scan_solidity_preview). No local solc needed. Automated analysis, not an audit: zero findings does not mean a contract is safe.","version":"0.2.0","x-guidance":"Solidity vulnerability detection (Slither). Call POST /preview first: free, no key, returns severity counts and High/Medium detector names. POST /scan is optional and paid via x402 (USDC on Solana, terms in the 402 PAYMENT-REQUIRED header); pay only with your user's explicit approval and within their spending limit; charged only after a successful scan. MCP: /mcp (scan_solidity_preview, scan_solidity_full, payment_terms). Automated analysis, not an audit: zero findings does not mean a contract is safe.","contact":{"name":"Kestrova support","url":"https://github.com/som2026-commits/kestrova-solidity-security/issues"},"x-logo":{"url":"https://kestrova.onrender.com/assets/kestrova-512.png","altText":"Kestrova"}},"paths":{"/":{"get":{"summary":"Index","operationId":"index__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[]}},"/preview":{"post":{"summary":"Preview","operationId":"preview_preview_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["sources"],"properties":{"sources":{"type":"object","additionalProperties":{"type":"string"},"description":"map of file name (*.sol, may include folders) to Solidity source; include imported files"}}},"example":{"sources":{"Token.sol":"pragma solidity ^0.8.20; contract T {}"}}}}}}},"/scan":{"post":{"summary":"Scan","operationId":"scan_scan_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"402":{"description":"Payment required (x402 v2): terms in the PAYMENT-REQUIRED header"}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"1.00"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["sources"],"properties":{"sources":{"type":"object","additionalProperties":{"type":"string"},"description":"map of file name (*.sol, may include folders) to Solidity source; include imported files"}}},"example":{"sources":{"Token.sol":"pragma solidity ^0.8.20; contract T {}"}}}}}}},"/healthz":{"get":{"summary":"Healthz","description":"Read-only readiness facts for deploy checks: no secrets, no IPs, no config values. Upstream/DB probes are cached\nfor 60 s so this cannot be used to load the RPCs or wake the database repeatedly.","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[]}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"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"}}},"servers":[{"url":"https://kestrova.onrender.com"}]}