{"openapi": "3.1.0", "info": {"title": "SCV — Smart Contract Verification (rug-pull risk)", "version": "1.7.1+scanner-2.1.0", "description": "Machine-readable rug-pull / safety report for EVM contracts. x402 micropayments (HTTP 402), USDC, no API keys, no accounts. Pay per contract.", "contact": {"name": "SCV operator", "email": "aaaddd999aaa@gmail.com"}}, "servers": [{"url": "https://scv-agent.online"}], "paths": {"/health": {"get": {"summary": "Service status (free)", "security": [], "operationId": "health", "responses": {"200": {"description": "ok"}}}}, "/price": {"get": {"summary": "Price + x402 requirements (free)", "security": [], "operationId": "price", "responses": {"200": {"description": "ok"}}}}, "/example": {"get": {"summary": "Sample paid report (free)", "security": [], "operationId": "example", "responses": {"200": {"description": "ok"}}}}, "/favicon.ico": {"get": {"summary": "Service icon (free, PNG)", "security": [], "operationId": "favicon", "responses": {"200": {"description": "64x64 PNG icon", "content": {"image/png": {}}}}}}, "/scan": {"get": {"summary": "Paid rug-pull scan of one contract (x402)", "operationId": "scanOne", "description": "$0.005 per call, USDC x402. Unpaid request returns 402 with base64 PAYMENT-REQUIRED header (also present in body). Sign EIP-3009 payment, retry with PAYMENT-SIGNATURE.", "parameters": [{"name": "address", "in": "query", "required": true, "schema": {"type": "string", "pattern": "^0x[0-9a-fA-F]{40}$"}}, {"name": "network", "in": "query", "required": false, "schema": {"type": "string", "enum": ["arbitrum", "base", "bsc", "eth", "polygon"]}}, {"name": "verify", "in": "query", "required": false, "schema": {"type": "string", "enum": ["0", "1"]}}], "responses": {"402": {"description": "Payment required (x402)"}, "200": {"description": "Paid report JSON"}}}, "post": {"summary": "Paid batch scan, up to 50 contracts (x402)", "operationId": "scanBatch", "description": "Price = price x number of addresses. Same x402 flow as GET /scan.", "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"addresses": {"type": "array", "items": {"type": "string"}, "maxItems": 50}, "network": {"type": "string"}, "verify": {"type": "boolean"}}, "required": ["addresses"]}}}}, "responses": {"402": {"description": "Payment required (x402)"}, "200": {"description": "Paid batch report JSON"}}}}, "/feed": {"get": {"summary": "Paid fresh-token feed with risk scores + market data (x402, $0.005)", "operationId": "freshFeed", "description": "Newest tokens seen creating liquidity pairs on base/bsc/eth: instant rug-risk score (same engine as /scan) + market data from DexScreener (liquidity_usd, price_usd, volume_24h_usd, txns_24h, pair_url). Same x402 flow as /scan.", "parameters": [{"name": "network", "in": "query", "required": false, "schema": {"type": "string", "enum": ["base", "bsc", "eth"], "default": "base"}}, {"name": "count", "in": "query", "required": false, "schema": {"type": "integer", "minimum": 1, "maximum": 25, "default": 25}}, {"name": "min_liquidity", "in": "query", "required": false, "description": "Only tokens whose best pool liquidity is >= this USD amount (DexScreener data)", "schema": {"type": "number", "minimum": 0}}], "responses": {"402": {"description": "Payment required (x402)"}, "200": {"description": "Feed JSON with tokens+scores"}}}}, "/feed/stats": {"get": {"security": [], "summary": "Fresh Feed status (free)", "operationId": "feedStats", "responses": {"200": {"description": "ok"}}}}, "/wallet-risk": {"get": {"summary": "Paid wallet risk check (x402, $0.01)", "operationId": "walletRisk", "description": "Wallet screening: ScamSniffer+MEW drainer/phishing blacklists, on-chain profile, optional token-owner relation. Same x402 flow as /scan.", "parameters": [{"name": "wallet", "in": "query", "required": true, "schema": {"type": "string", "pattern": "^0x[0-9a-fA-F]{40}$"}}, {"name": "network", "in": "query", "required": false, "schema": {"type": "string", "enum": ["eth", "bsc", "base"], "default": "eth"}}, {"name": "token", "in": "query", "required": false, "schema": {"type": "string"}}], "responses": {"402": {"description": "Payment required (x402)"}, "200": {"description": "Wallet risk report JSON"}}}}, "/approvals": {"get": {"summary": "Paid token approvals audit (x402, $0.01)", "operationId": "approvalsAudit", "description": "Active ERC-20 approvals of a wallet on top tokens: unlimited/unknown-spender detection. Same x402 flow as /scan.", "parameters": [{"name": "wallet", "in": "query", "required": true, "schema": {"type": "string", "pattern": "^0x[0-9a-fA-F]{40}$"}}, {"name": "network", "in": "query", "required": false, "schema": {"type": "string", "enum": ["eth", "bsc", "base"], "default": "eth"}}], "responses": {"402": {"description": "Payment required (x402)"}, "200": {"description": "Approvals report JSON"}}}}, "/honeypot": {"get": {"summary": "Paid honeypot check (x402, $0.005)", "operationId": "honeypotCheck", "description": "Honeypot risk profile of a token: trading gate selectors + revert strings, on-chain tradingOpen()/isBlacklisted(random addr) probes, tax/mint/pause/limits, proxy, ownership. Verdict HONEYPOT_LIKELY/SUSPICIOUS/CAUTION/UNLIKELY. Same x402 flow as /scan.", "parameters": [{"name": "address", "in": "query", "required": true, "schema": {"type": "string", "pattern": "^0x[0-9a-fA-F]{40}$"}}, {"name": "network", "in": "query", "required": false, "schema": {"type": "string", "enum": ["arbitrum", "base", "bsc", "eth", "polygon"]}}], "responses": {"402": {"description": "Payment required (x402)"}, "200": {"description": "Honeypot report JSON"}}}}, "/mcp": {"post": {"summary": "MCP server endpoint (JSON-RPC 2.0, Streamable HTTP)", "security": [], "operationId": "mcpJsonRpc", "description": "Model Context Protocol: initialize, tools/list, tools/call (scv_scan, scv_feed, scv_wallet_risk, scv_approvals, scv_honeypot). Unpaid tools/call returns payment requirements (x402) in result.content[0].text + PAYMENT-REQUIRED header.", "responses": {"200": {"description": "JSON-RPC response"}}}, "get": {"summary": "MCP server info (free)", "security": [], "operationId": "mcpInfo", "responses": {"200": {"description": "ok"}}}}, "/tools": {"get": {"security": [], "summary": "All paid tools + prices (free)", "operationId": "tools", "responses": {"200": {"description": "ok"}}}}}}