{"openapi":"3.1.0","info":{"title":"Automaton Onchain & URL Tools","version":"1.2.0","contact":{"name":"Automaton","url":"https://automaton-tx-explainer.vercel.app/health"},"description":"Pay-per-call utilities via x402 (USDC on Base): tx explainer, token approvals, address inspector and contract-risk heuristics for Base, Ethereum and BNB Smart Chain, plus URL safety checks.","x-guidance":"GET an endpoint with its query param; answer the 402 with an x402 v2 exact-scheme USDC payment on eip155:8453 (PAYMENT-SIGNATURE header). Invalid input is rejected with 400 before any charge. MCP: POST /mcp (streamable HTTP, paid tools)."},"servers":[{"url":"https://automaton-tx-explainer.vercel.app"}],"paths":{"/v1/base/tx":{"get":{"operationId":"base_tx_explain","summary":"Base Tx Explainer","description":"Explain a Base transaction: status, fee, decoded method + args (openchain signature DB), and ERC-20 transfers with symbols and human amounts.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]},"parameters":[{"name":"hash","in":"query","required":true,"description":"Base transaction hash","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"chain":"base","status":"success","method":"transfer(address,uint256)","fee":"0.00000027","tokenTransfers":[{"symbol":"USDC","amount":"1.028272","from":"0x...","to":"0x..."}],"summary":"success · transfer · 1 token transfer(s)"}}}},"400":{"description":"Invalid input (no charge)"},"402":{"description":"Payment Required"}}}},"/v1/base/approvals":{"get":{"operationId":"base_token_approvals","summary":"Base Token Approval Check","description":"Check a Base wallet's ERC-20 approvals: allowances for 8 major tokens (USDC, WETH, USDbC, DAI...) to common spenders (Permit2, Uniswap Universal Router, Uniswap SwapRouter02, Aerodrome Router...); flags unlimited approvals.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"Base wallet address (owner)","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"owner":"0x...","checkedPairs":64,"nonZeroApprovals":[{"token":"USDC","spender":"Permit2","unlimited":true,"allowance":"unlimited"}],"unlimitedCount":1}}}},"400":{"description":"Invalid input (no charge)"},"402":{"description":"Payment Required"}}}},"/v1/base/address":{"get":{"operationId":"base_address_inspect","summary":"Base Address Inspector","description":"Inspect any Base address: EOA vs contract vs EIP-7702 delegated, ETH balance, nonce, proxy implementation (EIP-1967/1167/zos), and ERC-20 name/symbol/decimals/supply.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"Base address (EOA or contract)","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"type":"contract","nativeBalance":"0","proxy":{"standard":"EIP-1967","implementation":"0x..."},"erc20":{"name":"USD Coin","symbol":"USDC","decimals":6},"summary":"contract (EIP-1967 proxy) · ERC-20 USDC"}}}},"400":{"description":"Invalid input (no charge)"},"402":{"description":"Payment Required"}}}},"/v1/base/contract-risk":{"get":{"operationId":"base_contract_risk","summary":"Base Contract Risk Heuristics","description":"Heuristic risk flags for a Base contract from free public data: Sourcify verification, upgradeable proxy + admin, owner type, mint/pause/blacklist/fee selectors, bytecode size. Not an audit or financial advice.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"Base contract address","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"riskLevel":"medium","heuristicScore":5,"sourcify":{"contract":{"verified":true}},"proxy":{"standard":"EIP-1967"},"ownerType":"eoa","capabilities":{"mint":["mint(address,uint256)"]},"findings":[{"severity":"medium","note":"Mint function present"}],"disclaimer":"..."}}}},"400":{"description":"Invalid input (no charge)"},"402":{"description":"Payment Required"}}}},"/v1/ethereum/tx":{"get":{"operationId":"ethereum_tx_explain","summary":"Ethereum Tx Explainer","description":"Explain a Ethereum transaction: status, fee, decoded method + args (openchain signature DB), and ERC-20 transfers with symbols and human amounts.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]},"parameters":[{"name":"hash","in":"query","required":true,"description":"Ethereum transaction hash","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"chain":"ethereum","status":"success","method":"transfer(address,uint256)","fee":"0.00000027","tokenTransfers":[{"symbol":"USDC","amount":"1.028272","from":"0x...","to":"0x..."}],"summary":"success · transfer · 1 token transfer(s)"}}}},"400":{"description":"Invalid input (no charge)"},"402":{"description":"Payment Required"}}}},"/v1/ethereum/approvals":{"get":{"operationId":"ethereum_token_approvals","summary":"Ethereum Token Approval Check","description":"Check a Ethereum wallet's ERC-20 approvals: allowances for 8 major tokens (USDC, USDT, WETH, DAI...) to common spenders (Permit2, Uniswap Universal Router v4, Uniswap Universal Router, Uniswap SwapRouter02...); flags unlimited approvals.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"Ethereum wallet address (owner)","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"owner":"0x...","checkedPairs":64,"nonZeroApprovals":[{"token":"USDC","spender":"Permit2","unlimited":true,"allowance":"unlimited"}],"unlimitedCount":1}}}},"400":{"description":"Invalid input (no charge)"},"402":{"description":"Payment Required"}}}},"/v1/ethereum/address":{"get":{"operationId":"ethereum_address_inspect","summary":"Ethereum Address Inspector","description":"Inspect any Ethereum address: EOA vs contract vs EIP-7702 delegated, ETH balance, nonce, proxy implementation (EIP-1967/1167/zos), and ERC-20 name/symbol/decimals/supply.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"Ethereum address (EOA or contract)","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"type":"contract","nativeBalance":"0","proxy":{"standard":"EIP-1967","implementation":"0x..."},"erc20":{"name":"USD Coin","symbol":"USDC","decimals":6},"summary":"contract (EIP-1967 proxy) · ERC-20 USDC"}}}},"400":{"description":"Invalid input (no charge)"},"402":{"description":"Payment Required"}}}},"/v1/ethereum/contract-risk":{"get":{"operationId":"ethereum_contract_risk","summary":"Ethereum Contract Risk Heuristics","description":"Heuristic risk flags for a Ethereum contract from free public data: Sourcify verification, upgradeable proxy + admin, owner type, mint/pause/blacklist/fee selectors, bytecode size. Not an audit or financial advice.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"Ethereum contract address","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"riskLevel":"medium","heuristicScore":5,"sourcify":{"contract":{"verified":true}},"proxy":{"standard":"EIP-1967"},"ownerType":"eoa","capabilities":{"mint":["mint(address,uint256)"]},"findings":[{"severity":"medium","note":"Mint function present"}],"disclaimer":"..."}}}},"400":{"description":"Invalid input (no charge)"},"402":{"description":"Payment Required"}}}},"/v1/bsc/tx":{"get":{"operationId":"bsc_tx_explain","summary":"BNB Smart Chain Tx Explainer","description":"Explain a BNB Smart Chain transaction: status, fee, decoded method + args (openchain signature DB), and ERC-20 transfers with symbols and human amounts.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]},"parameters":[{"name":"hash","in":"query","required":true,"description":"BNB Smart Chain transaction hash","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"chain":"bsc","status":"success","method":"transfer(address,uint256)","fee":"0.00000027","tokenTransfers":[{"symbol":"USDC","amount":"1.028272","from":"0x...","to":"0x..."}],"summary":"success · transfer · 1 token transfer(s)"}}}},"400":{"description":"Invalid input (no charge)"},"402":{"description":"Payment Required"}}}},"/v1/bsc/approvals":{"get":{"operationId":"bsc_token_approvals","summary":"BNB Smart Chain Token Approval Check","description":"Check a BNB Smart Chain wallet's ERC-20 approvals: allowances for 8 major tokens (USDT, USDC, WBNB, BUSD...) to common spenders (Permit2, PancakeSwap v2 Router, PancakeSwap Smart Router, PancakeSwap Universal Router...); flags unlimited approvals.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"BNB Smart Chain wallet address (owner)","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"owner":"0x...","checkedPairs":64,"nonZeroApprovals":[{"token":"USDC","spender":"Permit2","unlimited":true,"allowance":"unlimited"}],"unlimitedCount":1}}}},"400":{"description":"Invalid input (no charge)"},"402":{"description":"Payment Required"}}}},"/v1/bsc/address":{"get":{"operationId":"bsc_address_inspect","summary":"BNB Smart Chain Address Inspector","description":"Inspect any BNB Smart Chain address: EOA vs contract vs EIP-7702 delegated, BNB balance, nonce, proxy implementation (EIP-1967/1167/zos), and ERC-20 name/symbol/decimals/supply.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"BNB Smart Chain address (EOA or contract)","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"type":"contract","nativeBalance":"0","proxy":{"standard":"EIP-1967","implementation":"0x..."},"erc20":{"name":"USD Coin","symbol":"USDC","decimals":6},"summary":"contract (EIP-1967 proxy) · ERC-20 USDC"}}}},"400":{"description":"Invalid input (no charge)"},"402":{"description":"Payment Required"}}}},"/v1/bsc/contract-risk":{"get":{"operationId":"bsc_contract_risk","summary":"BNB Smart Chain Contract Risk Heuristics","description":"Heuristic risk flags for a BNB Smart Chain contract from free public data: Sourcify verification, upgradeable proxy + admin, owner type, mint/pause/blacklist/fee selectors, bytecode size. Not an audit or financial advice.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"BNB Smart Chain contract address","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"riskLevel":"medium","heuristicScore":5,"sourcify":{"contract":{"verified":true}},"proxy":{"standard":"EIP-1967"},"ownerType":"eoa","capabilities":{"mint":["mint(address,uint256)"]},"findings":[{"severity":"medium","note":"Mint function present"}],"disclaimer":"..."}}}},"400":{"description":"Invalid input (no charge)"},"402":{"description":"Payment Required"}}}},"/v1/url-safety":{"get":{"operationId":"url_safety_check","summary":"URL Safety Check","description":"Check a URL for phishing/scam signals: MetaMask eth-phishing-detect + Phishing.Database blocklists, RDAP domain age, punycode and brand-lookalike detection, HTTPS reachability. Heuristic; not security advice.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005"},"protocols":[{"x402":{}}]},"parameters":[{"name":"url","in":"query","required":true,"description":"http(s) URL or hostname","schema":{"type":"string","pattern":"^.{4,2048}$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"host":"example.com","verdict":"no known issues","score":0,"signals":[],"blocklists":{"metamask":false,"phishingDatabase":false},"domainAge":{"ageDays":11000}}}}},"400":{"description":"Invalid input (no charge)"},"402":{"description":"Payment Required"}}}}}}