{"openapi":"3.1.0","info":{"title":"x402.fuchss.app — on-chain analytics over x402","version":"1.0.0","x-guidance":"Pay-per-call on-chain analytics. POST application/json with the documented body. Payment: USDC EIP-3009 on Base mainnet (eip155:8453) via the x402 PAYMENT-SIGNATURE header. Responses are schema-pinned JSON; supported networks are listed per endpoint.","contact":{"name":"x402.fuchss.app"}},"servers":[{"url":"https://x402.fuchss.app"}],"paths":{"/v1/contract-audit":{"post":{"summary":"Smart-contract audit from on-chain bytecode","description":"Prefetches deployed bytecode via eth_getCode (rejects EOAs) and returns schema-pinned JSON: {summary, riskLevel, entryPoints[], findings[{title,severity,evidence}], observedPatterns[], recommendedFollowUp[]}.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.045770"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"0x-prefixed 20-byte EVM address.","pattern":"^0x[0-9a-fA-F]{40}$"},"network":{"type":"string","description":"Venice RPC network slug (default base-mainnet). One of: base-mainnet, ethereum-mainnet, arbitrum-mainnet, optimism-mainnet, polygon-mainnet.","enum":["base-mainnet","ethereum-mainnet","arbitrum-mainnet","optimism-mainnet","polygon-mainnet"]},"focus":{"type":"string","description":"Optional focus area (e.g. 'reentrancy', 'access control', 'overflow')."},"model":{"type":"string","description":"Optional Venice model id (default picks the cheapest catalog model satisfying the request)."}},"required":["address"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"Echoed contract address."},"network":{"type":"string","description":"Network the audit ran on."},"model":{"type":"string","description":"Venice model used."},"bytecodeBytes":{"type":"string","description":"Bytecode size in bytes."},"audit":{"type":"object","description":"Structured audit JSON."}},"required":[]}}}},"402":{"description":"Payment Required"}}}},"/v1/tx-explain":{"post":{"summary":"Explain an EVM transaction","description":"Prefetches eth_getTransactionByHash + eth_getTransactionReceipt in parallel and returns {summary, riskLevel, decoded{from,to,valueEth,method,contracts[]}, observedPatterns[], riskFlags[], recommendedFollowUp[]}.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.018745"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"txHash":{"type":"string","description":"0x-prefixed 32-byte transaction hash.","pattern":"^0x[0-9a-fA-F]{64}$"},"network":{"type":"string","description":"Venice RPC network slug (default base-mainnet). One of: base-mainnet, ethereum-mainnet, arbitrum-mainnet, optimism-mainnet, polygon-mainnet.","enum":["base-mainnet","ethereum-mainnet","arbitrum-mainnet","optimism-mainnet","polygon-mainnet"]},"model":{"type":"string","description":"Optional Venice model id (default picks the cheapest catalog model satisfying the request)."}},"required":["txHash"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment Required"}}}},"/v1/erc20-rugcheck":{"post":{"summary":"ERC-20 rug-pull / honeypot risk check","description":"Prefetches token name/symbol/decimals/totalSupply + owner/proxy slots and returns {summary, riskLevel, token{name,symbol,decimals,totalSupply}, riskFlags[{title,severity,evidence}], recommendedFollowUp[]}.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.025415"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"0x-prefixed 20-byte EVM address.","pattern":"^0x[0-9a-fA-F]{40}$"},"network":{"type":"string","description":"Venice RPC network slug (default base-mainnet). One of: base-mainnet, ethereum-mainnet, arbitrum-mainnet, optimism-mainnet, polygon-mainnet.","enum":["base-mainnet","ethereum-mainnet","arbitrum-mainnet","optimism-mainnet","polygon-mainnet"]},"model":{"type":"string","description":"Optional Venice model id (default picks the cheapest catalog model satisfying the request)."}},"required":["address"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment Required"}}}},"/v1/safe-tx-preview":{"post":{"summary":"Gnosis Safe transaction preview & simulation","description":"Prefetches Safe owners/threshold/nonce/version in parallel, simulates the inner call, and returns {simulation, safeContext, target, preview, riskFlags[]}.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.026680"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"safeAddress":{"type":"string","description":"Gnosis Safe address that would execute.","pattern":"^0x[0-9a-fA-F]{40}$"},"to":{"type":"string","description":"Target address of the inner call.","pattern":"^0x[0-9a-fA-F]{40}$"},"data":{"type":"string","description":"Hex-encoded calldata (default '0x')."},"value":{"type":"string","description":"Hex or decimal wei value (default '0')."},"operation":{"type":"number","description":"0 = CALL (default), 1 = DELEGATECALL (elevated risk)."},"network":{"type":"string","description":"Venice RPC network slug (default base-mainnet). One of: base-mainnet, ethereum-mainnet, arbitrum-mainnet, optimism-mainnet, polygon-mainnet.","enum":["base-mainnet","ethereum-mainnet","arbitrum-mainnet","optimism-mainnet","polygon-mainnet"]},"model":{"type":"string","description":"Optional Venice model id (default picks the cheapest catalog model satisfying the request)."}},"required":["safeAddress","to"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment Required"}}}},"/v1/contract-diff":{"post":{"summary":"Bytecode + selector diff between two contracts","description":"Fetches both deployed bytecodes via eth_getCode, extracts function-selector sets via PUSH4-dispatcher scan, computes added/removed/kept selectors, and returns schema-pinned JSON.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.026824"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"left":{"type":"string","description":"0x-prefixed 'before' contract address.","pattern":"^0x[0-9a-fA-F]{40}$"},"right":{"type":"string","description":"0x-prefixed 'after' contract address.","pattern":"^0x[0-9a-fA-F]{40}$"},"label":{"type":"string","description":"Optional short context label, echoed in output."},"network":{"type":"string","description":"Venice RPC network slug (default base-mainnet). One of: base-mainnet, ethereum-mainnet, arbitrum-mainnet, optimism-mainnet, polygon-mainnet.","enum":["base-mainnet","ethereum-mainnet","arbitrum-mainnet","optimism-mainnet","polygon-mainnet"]},"model":{"type":"string","description":"Optional Venice model id (default picks the cheapest catalog model satisfying the request)."}},"required":["left","right"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment Required"}}}},"/v1/x402-payment-trace":{"post":{"summary":"x402 EIP-3009 payment trace","description":"Decodes an EIP-3009 settlement tx (transferWithAuthorization / receiveWithAuthorization), identifies payer/payee/amount/token, cross-references our local ledger if the payment was local.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.017624"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"txHash":{"type":"string","description":"0x-prefixed 32-byte transaction hash.","pattern":"^0x[0-9a-fA-F]{64}$"},"hintResource":{"type":"string","description":"Optional x402 resource URL the caller believes this payment was for."},"network":{"type":"string","description":"Venice RPC network slug (default base-mainnet). One of: base-mainnet, ethereum-mainnet, arbitrum-mainnet, optimism-mainnet, polygon-mainnet.","enum":["base-mainnet","ethereum-mainnet","arbitrum-mainnet","optimism-mainnet","polygon-mainnet"]},"model":{"type":"string","description":"Optional Venice model id (default picks the cheapest catalog model satisfying the request)."}},"required":["txHash"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment Required"}}}},"/v1/x402-quote-audit":{"post":{"summary":"Comparative quote audit between two x402 resources","description":"Probes two x402 resource URLs in parallel, compares their advertised pricing and returns {summary, priceDelta, observations[], recommendation}.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.021908"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"resourceA":{"type":"string","description":"First x402 resource URL to probe."},"resourceB":{"type":"string","description":"Second x402 resource URL to probe."},"label":{"type":"string","description":"Optional label for the comparison."},"model":{"type":"string","description":"Optional Venice model id (default picks the cheapest catalog model satisfying the request)."}},"required":["resourceA","resourceB"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment Required"}}}}}}