{"openapi":"3.1.0","info":{"title":"On-Chain Reads (EVM + Bitcoin)","version":"0.1.0","description":"Live on-chain data. EVM networks (Ethereum, Base, Arbitrum, Optimism, Polygon): gas, address balance/nonce/contract detection, ERC-20 token metadata and wallet token balances, transaction status and block info, plain-language transaction explains, deterministic ERC-20 token-risk scans, ENS name resolution (resolve, reverse, text records), NFT metadata and function-selector/calldata decoding. Bitcoin (`btc-*` ops): recommended fees, mempool congestion, address balance/history and transaction status. Live reads with automatic endpoint fallback.","x-guidance":"Live on-chain data. EVM networks (Ethereum, Base, Arbitrum, Optimism, Polygon): gas, address balance/nonce/contract detection, ERC-20 token metadata and wallet token balances, transaction status and block info, plain-language transaction explains, deterministic ERC-20 token-risk scans, ENS name resolution (resolve, reverse, text records), NFT metadata and function-selector/calldata decoding. Bitcoin (`btc-*` ops): recommended fees, mempool congestion, address balance/history and transaction status. Live reads with automatic endpoint fallback. Each operation is an HTTP POST to its /v1/<operation> path with a JSON request body (see each operation's requestBody schema) and returns a JSON response. Endpoints are paid per successful call via x402 or MPP (USDC on Base); an unpaid request returns 402 with payment metadata in the WWW-Authenticate header.","contact":{"email":"hello@openverbs.com"}},"x-discovery":{"ownershipProofs":["0xb1401a71756f51464a9962db12f1eb3e9522490cd20010b06d00cf7b7770acfd5f79721f9dfdf2643f8cecd29af3bde9ec133941a386042b32d9886053a70de61b","0xc1c1f11793e18a00fcb7072421f26e89fb75b6aa517fa84370564991f4b10efa024f6f57e4e67eefd20cf46cc01fc5a62d793fa8fbcda04f26c946a3433d73f91b","0x676b474af0ef9ed4809b5d12d2e789b36e52d56215b21f601d71f76620e36ec630347116a7b2b349a3c3681e5db0fbfa76c4169a676b6d6f27864d0e5017284a1c","0xc2ab96522515ed9e9bc4f1a241b774bd48df42e951ddbf7f6aa8fc76f5a96a20421703e1ec402ce7eb1e4eabea3b6e4e4129cf39d56ea91cf4fcf38561fc94fc1c"]},"servers":[{"url":"https://chain.openverbs.com"}],"paths":{"/health":{"get":{"summary":"Health check","security":[],"responses":{"200":{"description":"Healthy","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"service":{"type":"string"},"version":{"type":"string"}}}}}}}}},"/v1/gas":{"post":{"summary":"Current gas","description":"Live gas conditions for an EVM chain: current gas price, the latest block's base fee (EIP-1559) and the suggested max priority fee — all in both wei and gwei. Ground truth an agent can't compute. Reads live on-chain data with automatic endpoint fallback. Paid endpoint (x402 + MPP). Price: $0.002000 USDC per successful payment.","tags":["gas price","gas","gas fees","gwei","eip-1559"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"],"description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."}},"required":[],"additionalProperties":false}}}},"responses":{"200":{"description":"`{ chain, chainId, blockNumber, gasPriceWei/Gwei, baseFeePerGasWei/Gwei, maxPriorityFeePerGasWei/Gwei }`. `stale: true` (with `cachedAt`) if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ chain, chainId, blockNumber, gasPriceWei/Gwei, baseFeePerGasWei/Gwei, maxPriorityFeePerGasWei/Gwei }`. `stale: true` (with `cachedAt`) if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Live gas conditions for an EVM chain: current gas price, the latest block's base fee (EIP-1559) and the suggested max priority fee — all in both wei and gwei. Ground truth an agent can't compute. Reads live on-chain data with automatic endpoint fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Live gas conditions for an EVM chain: current gas price, the latest block's base fee (EIP-1559) and the suggested max priority fee — all in both wei and gwei. Ground truth an agent can't compute. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Live gas conditions for an EVM chain: current gas price, the latest block's base fee (EIP-1559) and the suggested max priority fee — all in both wei and gwei. Ground truth an agent can't compute. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/address":{"post":{"summary":"On-chain Wallet Balance (native)","description":"Native ETH / wallet balance for an address on any EVM chain: native balance (wei + ether), transaction count (nonce), and whether it's a contract or an externally-owned account (with deployed code size). Reads live on-chain data with automatic endpoint fallback. Paid endpoint (x402 + MPP). Price: $0.002000 USDC per successful payment.","tags":["eth balance","wallet balance","native balance","balance","base"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"20-byte hex address."},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"],"description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."}},"required":["address"],"additionalProperties":false},"example":{"address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chain":"base"}}}},"responses":{"200":{"description":"`{ chain, chainId, address, isContract, balanceWei, balanceEth, nonce, codeSizeBytes }`. `stale: true` (with `cachedAt`) if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ chain, chainId, address, isContract, balanceWei, balanceEth, nonce, codeSizeBytes }`. `stale: true` (with `cachedAt`) if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Native ETH / wallet balance for an address on any EVM chain: native balance (wei + ether), transaction count (nonce), and whether it's a contract or an externally-owned account (with deployed code size). Reads live on-chain data with automatic endpoint fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Native ETH / wallet balance for an address on any EVM chain: native balance (wei + ether), transaction count (nonce), and whether it's a contract or an externally-owned account (with deployed code size). Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Native ETH / wallet balance for an address on any EVM chain: native balance (wei + ether), transaction count (nonce), and whether it's a contract or an externally-owned account (with deployed code size). Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/token":{"post":{"summary":"ERC-20 Token Metadata","description":"Live ERC-20 metadata read directly from the contract: name, symbol, decimals and total supply (raw + decimal-formatted). Handles both string and legacy bytes32 name/symbol encodings. Returns `isToken:false` for EOAs or non-token contracts. Reads live on-chain data with automatic endpoint fallback. Paid endpoint (x402 + MPP). Price: $0.002000 USDC per successful payment.","tags":["onchain","erc20","token-metadata","total-supply","token-info"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"ERC-20 contract address."},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"],"description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."}},"required":["address"],"additionalProperties":false},"example":{"address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chain":"base"}}}},"responses":{"200":{"description":"`{ chain, chainId, address, isToken, name, symbol, decimals, totalSupply, totalSupplyFormatted }`. `stale: true` (with `cachedAt`) if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ chain, chainId, address, isToken, name, symbol, decimals, totalSupply, totalSupplyFormatted }`. `stale: true` (with `cachedAt`) if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Live ERC-20 metadata read directly from the contract: name, symbol, decimals and total supply (raw + decimal-formatted). Handles both string and legacy bytes32 name/symbol encodings. Returns `isToken:false` for EOAs or non-token contracts. Reads live on-chain data with automatic endpoint fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Live ERC-20 metadata read directly from the contract: name, symbol, decimals and total supply (raw + decimal-formatted). Handles both string and legacy bytes32 name/symbol encodings. Returns `isToken:false` for EOAs or non-token contracts. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Live ERC-20 metadata read directly from the contract: name, symbol, decimals and total supply (raw + decimal-formatted). Handles both string and legacy bytes32 name/symbol encodings. Returns `isToken:false` for EOAs or non-token contracts. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/token-balance":{"post":{"summary":"ERC-20 Token Balance","description":"Live ERC-20 token balance held by a wallet: calls `balanceOf(address)` on the token contract and returns the raw balance plus a decimal-formatted amount (using the token's own decimals) with its symbol. Distinct from `address` (native ETH balance) and `token` (contract metadata). Reads live on-chain data with automatic endpoint fallback. Paid endpoint (x402 + MPP). Price: $0.002000 USDC per successful payment.","tags":["onchain","erc20","token-balance","erc20-balance","defi"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Holder wallet address."},"token":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"ERC-20 token contract address."},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"],"description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."}},"required":["address","token"],"additionalProperties":false},"example":{"address":"0x0000000000000000000000000000000000000001","token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chain":"base"}}}},"responses":{"200":{"description":"`{ chain, chainId, address, token, isToken, symbol, decimals, balanceRaw, balanceFormatted }`. `stale: true` (with `cachedAt`) if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ chain, chainId, address, token, isToken, symbol, decimals, balanceRaw, balanceFormatted }`. `stale: true` (with `cachedAt`) if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Live ERC-20 token balance held by a wallet: calls `balanceOf(address)` on the token contract and returns the raw balance plus a decimal-formatted amount (using the token's own decimals) with its symbol. Distinct from `address` (native ETH balance) and `token` (contract metadata). Reads live on-chain data with automatic endpoint fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Live ERC-20 token balance held by a wallet: calls `balanceOf(address)` on the token contract and returns the raw balance plus a decimal-formatted amount (using the token's own decimals) with its symbol. Distinct from `address` (native ETH balance) and `token` (contract metadata). Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Live ERC-20 token balance held by a wallet: calls `balanceOf(address)` on the token contract and returns the raw balance plus a decimal-formatted amount (using the token's own decimals) with its symbol. Distinct from `address` (native ETH balance) and `token` (contract metadata). Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/token-allowance":{"post":{"summary":"ERC-20 Token Allowance API","description":"Live ERC-20 spending allowance an owner has granted a spender: calls `allowance(owner, spender)` on the token and returns the raw amount, a decimal-formatted amount (using the token's decimals) with its symbol, and an `isUnlimited` flag for effectively-infinite approvals. Use it to audit token approvals / approval risk before signing. Reads live on-chain data with automatic endpoint fallback. Paid endpoint (x402 + MPP). Price: $0.002000 USDC per successful payment.","tags":["token allowance","erc20 allowance","token approval check","spending approval","unlimited approval","check token approval"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"ERC-20 token contract address."},"owner":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Token holder that granted the approval."},"spender":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Approved spender address."},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"],"description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."}},"required":["token","owner","spender"],"additionalProperties":false},"example":{"token":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","owner":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","spender":"0x0000000000000000000000000000000000000001","chain":"base"}}}},"responses":{"200":{"description":"`{ chain, chainId, token, owner, spender, isToken, symbol, decimals, allowanceRaw, allowanceFormatted, isUnlimited }`. `stale: true` (with `cachedAt`) if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ chain, chainId, token, owner, spender, isToken, symbol, decimals, allowanceRaw, allowanceFormatted, isUnlimited }`. `stale: true` (with `cachedAt`) if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Live ERC-20 spending allowance an owner has granted a spender: calls `allowance(owner, spender)` on the token and returns the raw amount, a decimal-formatted amount (using the token's decimals) with its symbol, and an `isUnlimited` flag for effectively-infinite approvals. Use it to audit token approvals / approval risk before signing. Reads live on-chain data with automatic endpoint fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Live ERC-20 spending allowance an owner has granted a spender: calls `allowance(owner, spender)` on the token and returns the raw amount, a decimal-formatted amount (using the token's decimals) with its symbol, and an `isUnlimited` flag for effectively-infinite approvals. Use it to audit token approvals / approval risk before signing. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Live ERC-20 spending allowance an owner has granted a spender: calls `allowance(owner, spender)` on the token and returns the raw amount, a decimal-formatted amount (using the token's decimals) with its symbol, and an `isUnlimited` flag for effectively-infinite approvals. Use it to audit token approvals / approval risk before signing. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/gas-estimate":{"post":{"summary":"Onchain Gas Estimate & Tx Simulation API","description":"Simulate a transaction before signing: runs `eth_estimateGas` for `{ to, from?, data?, value? }` and returns the estimated gas units and estimated fee (current gas price x gas, in wei + ETH). If the node rejects the call it returns `ok:false` with the decoded `revertReason` (why it would fail) instead of erroring. Reads live on-chain state with automatic endpoint fallback. Paid endpoint (x402 + MPP). Price: $0.004000 USDC per successful payment.","tags":["estimate gas","gas estimate","simulate transaction","will transaction revert","revert reason","transaction gas cost"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Destination address (contract or wallet)."},"from":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Sender address (optional; affects state-dependent estimates)."},"data":{"type":"string","pattern":"^0x([0-9a-fA-F]{2})*$","description":"Calldata hex (optional; e.g. an ERC-20 transfer)."},"value":{"type":"string","description":"Native value in wei, decimal or 0x-hex (optional)."},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"],"description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."}},"required":["to"],"additionalProperties":false},"example":{"to":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","value":"1000000000000000","chain":"ethereum"}}}},"responses":{"200":{"description":"`{ chain, chainId, to, from, ok, gas, revertReason, gasPriceWei, gasPriceGwei, estCostWei, estCostEth }`. `stale: true` (with `cachedAt`) if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ chain, chainId, to, from, ok, gas, revertReason, gasPriceWei, gasPriceGwei, estCostWei, estCostEth }`. `stale: true` (with `cachedAt`) if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"4000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Simulate a transaction before signing: runs `eth_estimateGas` for `{ to, from?, data?, value? }` and returns the estimated gas units and estimated fee (current gas price x gas, in wei + ETH). If the node rejects the call it returns `ok:false` with the decoded `revertReason` (why it would fail) instead of erroring. Reads live on-chain state with automatic endpoint fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.004000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"4000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Simulate a transaction before signing: runs `eth_estimateGas` for `{ to, from?, data?, value? }` and returns the estimated gas units and estimated fee (current gas price x gas, in wei + ETH). If the node rejects the call it returns `ok:false` with the decoded `revertReason` (why it would fail) instead of erroring. Reads live on-chain state with automatic endpoint fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"4000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Simulate a transaction before signing: runs `eth_estimateGas` for `{ to, from?, data?, value? }` and returns the estimated gas units and estimated fee (current gas price x gas, in wei + ETH). If the node rejects the call it returns `ok:false` with the decoded `revertReason` (why it would fail) instead of erroring. Reads live on-chain state with automatic endpoint fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/tx":{"post":{"summary":"On-chain Transaction Lookup","description":"Live status and details of a transaction by hash: success/failed/pending, from/to, value (wei + ether), nonce, block number, gas used, effective gas price and any created contract address. Returns `found:false` for unknown hashes. Reads live on-chain data with automatic endpoint fallback. Paid endpoint (x402 + MPP). Price: $0.003000 USDC per successful payment.","tags":["onchain","transaction","tx-hash","transaction-receipt","ethereum"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"32-byte transaction hash."},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"],"description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."}},"required":["hash"],"additionalProperties":false},"example":{"hash":"0x9ef1a5b4082c4f1f6bb2f2f67fb64115bd10815d6c20a2d1b5f9f5ddf8f8f8f8","chain":"ethereum"}}}},"responses":{"200":{"description":"`{ chain, chainId, hash, found, status, from, to, valueWei, valueEth, nonce, blockNumber, gasUsed, effectiveGasPriceWei, contractAddress }`. `stale: true` if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ chain, chainId, hash, found, status, from, to, valueWei, valueEth, nonce, blockNumber, gasUsed, effectiveGasPriceWei, contractAddress }`. `stale: true` if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"3000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Live status and details of a transaction by hash: success/failed/pending, from/to, value (wei + ether), nonce, block number, gas used, effective gas price and any created contract address. Returns `found:false` for unknown hashes. Reads live on-chain data with automatic endpoint fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"3000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Live status and details of a transaction by hash: success/failed/pending, from/to, value (wei + ether), nonce, block number, gas used, effective gas price and any created contract address. Returns `found:false` for unknown hashes. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"3000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Live status and details of a transaction by hash: success/failed/pending, from/to, value (wei + ether), nonce, block number, gas used, effective gas price and any created contract address. Returns `found:false` for unknown hashes. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/block":{"post":{"summary":"On-chain Block / Height","description":"Live block summary by number, hex, or tag (latest/earliest/pending/safe/finalized; default latest): number, hash, parent, timestamp (unix + ISO), transaction count, gas used/limit, base fee and miner. Reads live on-chain data with automatic endpoint fallback. Paid endpoint (x402 + MPP). Price: $0.001000 USDC per successful payment.","tags":["onchain","block","block-height","latest-block","ethereum"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"],"description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."},"block":{"type":["string","integer"],"description":"Block number (decimal or 0x hex) or a tag: latest, earliest, pending, safe, finalized. Default latest."}},"required":[],"additionalProperties":false},"example":{"chain":"base","block":"latest"}}}},"responses":{"200":{"description":"`{ chain, chainId, number, hash, parentHash, timestamp, isoTime, txCount, gasUsed, gasLimit, baseFeePerGasWei/Gwei, miner }`. `stale: true` if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ chain, chainId, number, hash, parentHash, timestamp, isoTime, txCount, gasUsed, gasLimit, baseFeePerGasWei/Gwei, miner }`. `stale: true` if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"1000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Live block summary by number, hex, or tag (latest/earliest/pending/safe/finalized; default latest): number, hash, parent, timestamp (unix + ISO), transaction count, gas used/limit, base fee and miner. Reads live on-chain data with automatic endpoint fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"1000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Live block summary by number, hex, or tag (latest/earliest/pending/safe/finalized; default latest): number, hash, parent, timestamp (unix + ISO), transaction count, gas used/limit, base fee and miner. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"1000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Live block summary by number, hex, or tag (latest/earliest/pending/safe/finalized; default latest): number, hash, parent, timestamp (unix + ISO), transaction count, gas used/limit, base fee and miner. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/logs":{"post":{"summary":"Onchain Event Logs & ERC-20 Transfers API","description":"Query a contract's event logs over a bounded block range via `eth_getLogs`: filter by `address` (required) and optional `topics`, get back raw logs (topics, data, block, tx hash, log index) with ERC-20/721 Transfer logs auto-decoded to `{from, to, value}`. Block span is capped (large windows are clamped); results are capped by `limit`. Reads live on-chain data with automatic endpoint fallback. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["event logs","get logs","erc20 transfers","token transfer history","contract event logs","eth_getLogs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Contract address to query logs for (required — bounds the query)."},"topics":{"type":"array","maxItems":4,"items":{"type":["string","null"],"pattern":"^0x[0-9a-fA-F]{64}$"},"description":"Optional topic filters (topic0 = event signature hash). Up to 4; null matches any."},"fromBlock":{"type":["string","integer"],"description":"Start block (decimal or 0x-hex; not a tag)."},"toBlock":{"type":["string","integer"],"description":"End block (decimal or 0x-hex) or \"latest\" (default). Max 5000-block span."},"limit":{"type":"integer","minimum":1,"maximum":5000,"description":"Max logs to return (default 1000)."},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"],"description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."}},"required":["address","fromBlock"],"additionalProperties":false},"example":{"address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"],"fromBlock":1,"toBlock":"latest","limit":1,"chain":"base"}}}},"responses":{"200":{"description":"`{ chain, chainId, address, fromBlock, toBlock, count, truncated, clamped, logs: [{ address, topics, data, blockNumber, transactionHash, logIndex, removed, decoded? }] }`. `stale: true` if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ chain, chainId, address, fromBlock, toBlock, count, truncated, clamped, logs: [{ address, topics, data, blockNumber, transactionHash, logIndex, removed, decoded? }] }`. `stale: true` if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Query a contract's event logs over a bounded block range via `eth_getLogs`: filter by `address` (required) and optional `topics`, get back raw logs (topics, data, block, tx hash, log index) with ERC-20/721 Transfer logs auto-decoded to `{from, to, value}`. Block span is capped (large windows are clamped); results are capped by `limit`. Reads live on-chain data with automatic endpoint fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Query a contract's event logs over a bounded block range via `eth_getLogs`: filter by `address` (required) and optional `topics`, get back raw logs (topics, data, block, tx hash, log index) with ERC-20/721 Transfer logs auto-decoded to `{from, to, value}`. Block span is capped (large windows are clamped); results are capped by `limit`. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Query a contract's event logs over a bounded block range via `eth_getLogs`: filter by `address` (required) and optional `topics`, get back raw logs (topics, data, block, tx hash, log index) with ERC-20/721 Transfer logs auto-decoded to `{from, to, value}`. Block span is capped (large windows are clamped); results are capped by `limit`. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/receipt":{"post":{"summary":"Transaction Receipt API","description":"Live transaction receipt by hash via `eth_getTransactionReceipt`: success/failed status, block number, from/to, created contract address, gas used, cumulative gas, effective gas price (wei + gwei), tx type and the emitted event logs (capped). Complements `tx` (which reads the transaction itself). Returns `found:false` for unknown/pending hashes. Reads live on-chain data with automatic endpoint fallback. Paid endpoint (x402 + MPP). Price: $0.003000 USDC per successful payment.","tags":["transaction receipt","get transaction receipt","tx status","gas used","transaction logs","eth_getTransactionReceipt"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"32-byte transaction hash."},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"],"description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."}},"required":["hash"],"additionalProperties":false},"example":{"hash":"0x9ef1a5b4082c4f1f6bb2f2f67fb64115bd10815d6c20a2d1b5f9f5ddf8f8f8f8","chain":"ethereum"}}}},"responses":{"200":{"description":"`{ chain, chainId, hash, found, status, blockNumber, from, to, contractAddress, gasUsed, cumulativeGasUsed, effectiveGasPriceWei/Gwei, type, logsCount, logs: [{ address, topics, data, logIndex }] }`. `stale: true` if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ chain, chainId, hash, found, status, blockNumber, from, to, contractAddress, gasUsed, cumulativeGasUsed, effectiveGasPriceWei/Gwei, type, logsCount, logs: [{ address, topics, data, logIndex }] }`. `stale: true` if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"3000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Live transaction receipt by hash via `eth_getTransactionReceipt`: success/failed status, block number, from/to, created contract address, gas used, cumulative gas, effective gas price (wei + gwei), tx type and the emitted event logs (capped). Complements `tx` (which reads the transaction itself). Returns `found:false` for unknown/pending hashes. Reads live on-chain data with automatic endpoint fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"3000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Live transaction receipt by hash via `eth_getTransactionReceipt`: success/failed status, block number, from/to, created contract address, gas used, cumulative gas, effective gas price (wei + gwei), tx type and the emitted event logs (capped). Complements `tx` (which reads the transaction itself). Returns `found:false` for unknown/pending hashes. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"3000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Live transaction receipt by hash via `eth_getTransactionReceipt`: success/failed status, block number, from/to, created contract address, gas used, cumulative gas, effective gas price (wei + gwei), tx type and the emitted event logs (capped). Complements `tx` (which reads the transaction itself). Returns `found:false` for unknown/pending hashes. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/proxy":{"post":{"summary":"Proxy Implementation Detection API","description":"Detect whether a contract is an upgradeable proxy and resolve its implementation: reads the standard EIP-1967 implementation/admin/beacon slots, EIP-1822 (UUPS), the OpenZeppelin legacy slot, and EIP-1167 minimal-proxy bytecode. Returns the proxy type, implementation, admin and beacon addresses when present. Reads live on-chain data with automatic endpoint fallback. Paid endpoint (x402 + MPP). Price: $0.004000 USDC per successful payment.","tags":["proxy contract","implementation address","upgradeable proxy","eip-1967","proxy detection","find implementation contract"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Contract address to inspect."},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"],"description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."}},"required":["address"],"additionalProperties":false},"example":{"address":"0x4200000000000000000000000000000000000006","chain":"base"}}}},"responses":{"200":{"description":"`{ chain, chainId, address, isContract, isProxy, proxyType, implementation, admin, beacon }`. `proxyType` ∈ eip1967|eip1967-beacon|uups|oz-legacy|eip1167-minimal|null. `stale: true` if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ chain, chainId, address, isContract, isProxy, proxyType, implementation, admin, beacon }`. `proxyType` ∈ eip1967|eip1967-beacon|uups|oz-legacy|eip1167-minimal|null. `stale: true` if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"4000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Detect whether a contract is an upgradeable proxy and resolve its implementation: reads the standard EIP-1967 implementation/admin/beacon slots, EIP-1822 (UUPS), the OpenZeppelin legacy slot, and EIP-1167 minimal-proxy bytecode. Returns the proxy type, implementation, admin and beacon addresses when present. Reads live on-chain data with automatic endpoint fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.004000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"4000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Detect whether a contract is an upgradeable proxy and resolve its implementation: reads the standard EIP-1967 implementation/admin/beacon slots, EIP-1822 (UUPS), the OpenZeppelin legacy slot, and EIP-1167 minimal-proxy bytecode. Returns the proxy type, implementation, admin and beacon addresses when present. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"4000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Detect whether a contract is an upgradeable proxy and resolve its implementation: reads the standard EIP-1967 implementation/admin/beacon slots, EIP-1822 (UUPS), the OpenZeppelin legacy slot, and EIP-1167 minimal-proxy bytecode. Returns the proxy type, implementation, admin and beacon addresses when present. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/explain":{"post":{"summary":"Explain a transaction","description":"Decode a transaction into plain language: native ETH transfer, contract call (with decoded method name for common ERC-20/DEX functions like transfer, approve, swap, mint, multicall) or contract creation; ERC-20 and NFT (ERC-721) transfers it triggered (token, from, to, amount/tokenId from logs); gas spent in ETH; success/failed/pending; and a one-line summary. Reads live on-chain data with automatic endpoint fallback. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["explain transaction","decode transaction","transaction summary","decode calldata","erc20 transfers in transaction","what did this transaction do"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"hash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"32-byte transaction hash."},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"],"description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."}},"required":["hash"],"additionalProperties":false},"example":{"hash":"0x9ef1a5b4082c4f1f6bb2f2f67fb64115bd10815d6c20a2d1b5f9f5ddf8f8f8f8","chain":"ethereum"}}}},"responses":{"200":{"description":"`{ chain, chainId, hash, found, status, kind, method, methodName, from, to, valueEth, gasUsed, gasCostEth, transfers: [{ token, from, to, valueRaw }], nftTransfers: [{ token, from, to, tokenId }], logCount, summary }`. `stale: true` if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ chain, chainId, hash, found, status, kind, method, methodName, from, to, valueEth, gasUsed, gasCostEth, transfers: [{ token, from, to, valueRaw }], nftTransfers: [{ token, from, to, tokenId }], logCount, summary }`. `stale: true` if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Decode a transaction into plain language: native ETH transfer, contract call (with decoded method name for common ERC-20/DEX functions like transfer, approve, swap, mint, multicall) or contract creation; ERC-20 and NFT (ERC-721) transfers it triggered (token, from, to, amount/tokenId from logs); gas spent in ETH; success/failed/pending; and a one-line summary. Reads live on-chain data with automatic endpoint fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Decode a transaction into plain language: native ETH transfer, contract call (with decoded method name for common ERC-20/DEX functions like transfer, approve, swap, mint, multicall) or contract creation; ERC-20 and NFT (ERC-721) transfers it triggered (token, from, to, amount/tokenId from logs); gas spent in ETH; success/failed/pending; and a one-line summary. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Decode a transaction into plain language: native ETH transfer, contract call (with decoded method name for common ERC-20/DEX functions like transfer, approve, swap, mint, multicall) or contract creation; ERC-20 and NFT (ERC-721) transfers it triggered (token, from, to, amount/tokenId from logs); gas spent in ETH; success/failed/pending; and a one-line summary. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/token-risk":{"post":{"summary":"ERC-20 token risk scan","description":"Deterministic risk screen of an ERC-20 token from on-chain bytecode and metadata, no third-party risk API. Flags privileged or abuse capabilities: blacklist/freeze, owner mint, pausable transfers, upgradeable proxy and a privileged owner, plus tokens missing symbol/decimals or code. Returns each flag with a severity, a 0-100 score and a verdict. Reads live on-chain data with automatic endpoint fallback. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["token risk scan","erc20 honeypot check","token security scan","rug pull check","token contract risk","detect malicious token"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"ERC-20 token contract address."},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"],"description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."}},"required":["address"],"additionalProperties":false},"example":{"address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chain":"base"}}}},"responses":{"200":{"description":"`{ chain, chainId, address, isContract, name, symbol, decimals, totalSupply, totalSupplyFormatted, flags: [{ code, severity, message }], score, verdict }`. `stale: true` if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ chain, chainId, address, isContract, name, symbol, decimals, totalSupply, totalSupplyFormatted, flags: [{ code, severity, message }], score, verdict }`. `stale: true` if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Deterministic risk screen of an ERC-20 token from on-chain bytecode and metadata, no third-party risk API. Flags privileged or abuse capabilities: blacklist/freeze, owner mint, pausable transfers, upgradeable proxy and a privileged owner, plus tokens missing symbol/decimals or code. Returns each flag with a severity, a 0-100 score and a verdict. Reads live on-chain data with automatic endpoint fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Deterministic risk screen of an ERC-20 token from on-chain bytecode and metadata, no third-party risk API. Flags privileged or abuse capabilities: blacklist/freeze, owner mint, pausable transfers, upgradeable proxy and a privileged owner, plus tokens missing symbol/decimals or code. Returns each flag with a severity, a 0-100 score and a verdict. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Deterministic risk screen of an ERC-20 token from on-chain bytecode and metadata, no third-party risk API. Flags privileged or abuse capabilities: blacklist/freeze, owner mint, pausable transfers, upgradeable proxy and a privileged owner, plus tokens missing symbol/decimals or code. Returns each flag with a severity, a 0-100 score and a verdict. Reads live on-chain data with automatic endpoint fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/ens-resolve":{"post":{"summary":"ENS Name Resolution","description":"Resolve an ENS name (like alice.eth) to its Ethereum address, read live from the ENS resolver on Ethereum mainnet. Offchain names such as *.base.eth resolve too. Returns `found:false` (a real answer, not an error) when the name has no address record. Live reads with automatic endpoint fallback. Paid endpoint (x402 + MPP). Price: $0.003000 USDC per successful payment.","tags":["onchain","ens","ens-resolve","ens-lookup","ethereum-name-service"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"ENS name to resolve, e.g. vitalik.eth."}},"required":["name"],"additionalProperties":false},"example":{"name":"vitalik.eth"}}}},"responses":{"200":{"description":"`{ name, address, found }`. `stale: true` (with `cachedAt`) if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ name, address, found }`. `stale: true` (with `cachedAt`) if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"3000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Resolve an ENS name (like alice.eth) to its Ethereum address, read live from the ENS resolver on Ethereum mainnet. Offchain names such as *.base.eth resolve too. Returns `found:false` (a real answer, not an error) when the name has no address record. Live reads with automatic endpoint fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"3000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Resolve an ENS name (like alice.eth) to its Ethereum address, read live from the ENS resolver on Ethereum mainnet. Offchain names such as *.base.eth resolve too. Returns `found:false` (a real answer, not an error) when the name has no address record. Live reads with automatic endpoint fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"3000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Resolve an ENS name (like alice.eth) to its Ethereum address, read live from the ENS resolver on Ethereum mainnet. Offchain names such as *.base.eth resolve too. Returns `found:false` (a real answer, not an error) when the name has no address record. Live reads with automatic endpoint fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/ens-reverse":{"post":{"summary":"ENS Reverse Lookup API (address to name)","description":"Reverse-resolve an Ethereum address to its primary ENS name (the reverse record set by the owner), read live on Ethereum mainnet. Returns `found:false` when the address has no primary name set. Live reads with automatic endpoint fallback. Paid endpoint (x402 + MPP). Price: $0.003000 USDC per successful payment.","tags":["ens reverse","address to ens name","reverse ens lookup","primary ens name","ens name of address","wallet ens name"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"20-byte hex address."}},"required":["address"],"additionalProperties":false},"example":{"address":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"}}}},"responses":{"200":{"description":"`{ address, name, found }`. `stale: true` (with `cachedAt`) if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ address, name, found }`. `stale: true` (with `cachedAt`) if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"3000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Reverse-resolve an Ethereum address to its primary ENS name (the reverse record set by the owner), read live on Ethereum mainnet. Returns `found:false` when the address has no primary name set. Live reads with automatic endpoint fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"3000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Reverse-resolve an Ethereum address to its primary ENS name (the reverse record set by the owner), read live on Ethereum mainnet. Returns `found:false` when the address has no primary name set. Live reads with automatic endpoint fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"3000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Reverse-resolve an Ethereum address to its primary ENS name (the reverse record set by the owner), read live on Ethereum mainnet. Returns `found:false` when the address has no primary name set. Live reads with automatic endpoint fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/ens-records":{"post":{"summary":"ENS Text Records API","description":"Read an ENS name's address plus its text records (avatar, url, email, description, com.twitter, com.github and more) in one call, live from the resolver on Ethereum mainnet. Pass `keys` to fetch specific records, or omit it for a sensible default set. Only records that are set are returned. Live reads with automatic endpoint fallback. Paid endpoint (x402 + MPP). Price: $0.002000 USDC per successful payment.","tags":["ens text records","ens avatar","ens twitter","ens profile","ens metadata","ens resolver records"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"ENS name, e.g. vitalik.eth."},"keys":{"type":"array","items":{"type":"string"},"maxItems":12,"description":"Text-record keys to read (max 12). Omit for defaults: avatar, description, url, email, com.twitter, com.github, org.telegram, com.discord."}},"required":["name"],"additionalProperties":false},"example":{"name":"vitalik.eth","keys":["com.twitter"]}}}},"responses":{"200":{"description":"`{ name, address, records: { <key>: <value> }, keys, found }`. `stale: true` (with `cachedAt`) if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ name, address, records: { <key>: <value> }, keys, found }`. `stale: true` (with `cachedAt`) if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Read an ENS name's address plus its text records (avatar, url, email, description, com.twitter, com.github and more) in one call, live from the resolver on Ethereum mainnet. Pass `keys` to fetch specific records, or omit it for a sensible default set. Only records that are set are returned. Live reads with automatic endpoint fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"2000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Read an ENS name's address plus its text records (avatar, url, email, description, com.twitter, com.github and more) in one call, live from the resolver on Ethereum mainnet. Pass `keys` to fetch specific records, or omit it for a sensible default set. Only records that are set are returned. Live reads with automatic endpoint fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"2000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Read an ENS name's address plus its text records (avatar, url, email, description, com.twitter, com.github and more) in one call, live from the resolver on Ethereum mainnet. Pass `keys` to fetch specific records, or omit it for a sensible default set. Only records that are set are returned. Live reads with automatic endpoint fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/nft-metadata":{"post":{"summary":"NFT metadata","description":"Resolve one NFT (contract + tokenId) into normalized metadata: name, description, image, attributes and token standard (ERC-721 or ERC-1155). Reads the on-chain tokenURI/uri, then fetches and normalizes the metadata document (ipfs/ar/http/data), rewriting ipfs image links to a gateway URL. Returns `found:false` for non-NFT contracts. Live reads with automatic endpoint fallback. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["nft metadata","nft token uri","erc721 metadata","erc1155 metadata","nft image","nft attributes","get nft"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"contract":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"NFT contract address."},"tokenId":{"type":["string","integer"],"description":"Token id (decimal or 0x-hex integer)."},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"],"description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."}},"required":["contract","tokenId"],"additionalProperties":false},"example":{"contract":"0xb47e3cd837dDF8e4c57F05d70Ab865de6e193BBB","tokenId":"1","chain":"ethereum"}}}},"responses":{"200":{"description":"`{ chain, chainId, contract, tokenId, found, tokenStandard, contractName, name, description, image, imageRaw, animationUrl, externalUrl, attributes, tokenUri, tokenUriRaw, metadata }`. `stale: true` if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ chain, chainId, contract, tokenId, found, tokenStandard, contractName, name, description, image, imageRaw, animationUrl, externalUrl, attributes, tokenUri, tokenUriRaw, metadata }`. `stale: true` if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Resolve one NFT (contract + tokenId) into normalized metadata: name, description, image, attributes and token standard (ERC-721 or ERC-1155). Reads the on-chain tokenURI/uri, then fetches and normalizes the metadata document (ipfs/ar/http/data), rewriting ipfs image links to a gateway URL. Returns `found:false` for non-NFT contracts. Live reads with automatic endpoint fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Resolve one NFT (contract + tokenId) into normalized metadata: name, description, image, attributes and token standard (ERC-721 or ERC-1155). Reads the on-chain tokenURI/uri, then fetches and normalizes the metadata document (ipfs/ar/http/data), rewriting ipfs image links to a gateway URL. Returns `found:false` for non-NFT contracts. Live reads with automatic endpoint fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Resolve one NFT (contract + tokenId) into normalized metadata: name, description, image, attributes and token standard (ERC-721 or ERC-1155). Reads the on-chain tokenURI/uri, then fetches and normalizes the metadata document (ipfs/ar/http/data), rewriting ipfs image links to a gateway URL. Returns `found:false` for non-NFT contracts. Live reads with automatic endpoint fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/decode":{"post":{"summary":"Decode calldata / function selector","description":"Turn a 4-byte function selector or full calldata into its human-readable function signature, and (when calldata is present) the decoded argument values. Supply an `abi` for a fully deterministic offline decode, or omit it to look the selector up in public signature registries. Reads with automatic fallback. Paid endpoint (x402 + MPP). Price: $0.004000 USDC per successful payment.","tags":["decode calldata","function selector lookup","4byte selector","decode transaction input","what function is this selector","abi decode"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"string","pattern":"^0x[0-9a-fA-F]*$","description":"Full calldata hex (selector + arguments)."},"selector":{"type":"string","pattern":"^0x[0-9a-fA-F]{8}$","description":"4-byte function selector, e.g. 0xa9059cbb."},"abi":{"type":["array","string"],"items":{"type":"string"},"description":"Optional human-readable signatures, e.g. [\"function transfer(address,uint256)\"], for an exact offline decode."}},"required":[],"additionalProperties":false},"example":{"selector":"0xa9059cbb"}}}},"responses":{"200":{"description":"`{ selector, source, name, signature, signatures, inputs, args, argsDecoded, note? }`. `stale: true` if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ selector, source, name, signature, signatures, inputs, args, argsDecoded, note? }`. `stale: true` if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"4000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Turn a 4-byte function selector or full calldata into its human-readable function signature, and (when calldata is present) the decoded argument values. Supply an `abi` for a fully deterministic offline decode, or omit it to look the selector up in public signature registries. Reads with automatic fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.004000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"4000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Turn a 4-byte function selector or full calldata into its human-readable function signature, and (when calldata is present) the decoded argument values. Supply an `abi` for a fully deterministic offline decode, or omit it to look the selector up in public signature registries. Reads with automatic fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"4000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Turn a 4-byte function selector or full calldata into its human-readable function signature, and (when calldata is present) the decoded argument values. Supply an `abi` for a fully deterministic offline decode, or omit it to look the selector up in public signature registries. Reads with automatic fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/abi":{"post":{"summary":"Contract ABI & verification (get ABI)","description":"Get the verified contract ABI and verification metadata for a deployed contract by address, sourced from Sourcify. Returns the contract ABI (to decode or call it), contract name, compiler/language, match type, and proxy resolution (is-proxy plus implementation addresses). Supports Ethereum, Base, Arbitrum, Optimism, Polygon. Unverified contracts return `verified:false`. Live reads with cache fallback. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["contract abi","get abi","get contract abi","verified contract","contract metadata"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Deployed contract address."},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"],"description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."}},"required":["address"],"additionalProperties":false},"example":{"address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chain":"base"}}}},"responses":{"200":{"description":"`{ chain, chainId, address, verified, matchType, contractName, language, compiler, abi, proxy: { isProxy, proxyType, implementations }, verifiedAt }`. `stale: true` (with `cachedAt`) if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ chain, chainId, address, verified, matchType, contractName, language, compiler, abi, proxy: { isProxy, proxyType, implementations }, verifiedAt }`. `stale: true` (with `cachedAt`) if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Get the verified contract ABI and verification metadata for a deployed contract by address, sourced from Sourcify. Returns the contract ABI (to decode or call it), contract name, compiler/language, match type, and proxy resolution (is-proxy plus implementation addresses). Supports Ethereum, Base, Arbitrum, Optimism, Polygon. Unverified contracts return `verified:false`. Live reads with cache fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Get the verified contract ABI and verification metadata for a deployed contract by address, sourced from Sourcify. Returns the contract ABI (to decode or call it), contract name, compiler/language, match type, and proxy resolution (is-proxy plus implementation addresses). Supports Ethereum, Base, Arbitrum, Optimism, Polygon. Unverified contracts return `verified:false`. Live reads with cache fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Get the verified contract ABI and verification metadata for a deployed contract by address, sourced from Sourcify. Returns the contract ABI (to decode or call it), contract name, compiler/language, match type, and proxy resolution (is-proxy plus implementation addresses). Supports Ethereum, Base, Arbitrum, Optimism, Polygon. Unverified contracts return `verified:false`. Live reads with cache fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/source":{"post":{"summary":"Verified contract source code (get source)","description":"Get the verified Solidity/Vyper source code for a deployed contract by address, sourced from Sourcify. Returns every source file (path + content), the contract name, language, compiler version and compiler settings (optimizer, evmVersion) — the full human-readable source an agent needs to read, audit or feed to an LLM. Supports Ethereum, Base, Arbitrum, Optimism, Polygon. Unverified contracts return `verified:false`. Live reads with cache fallback. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["contract source code","get source code","verified source","solidity source","smart contract source"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Deployed contract address."},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"],"description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."}},"required":["address"],"additionalProperties":false},"example":{"address":"0x0000000000000000000000000000000000000001","chain":"ethereum"}}}},"responses":{"200":{"description":"`{ chain, chainId, address, verified, matchType, contractName, fullyQualifiedName, language, compiler, settings, sources: [{ path, content, truncated }], fileCount, totalBytes, truncated, verifiedAt }`. `stale: true` (with `cachedAt`) if served from cache.","content":{"application/json":{"schema":{"type":"object","properties":{"chain":{"type":"string"},"chainId":{"type":"integer"},"address":{"type":"string"},"verified":{"type":"boolean"},"matchType":{},"contractName":{},"fullyQualifiedName":{},"language":{},"compiler":{},"settings":{},"sources":{"type":"array","items":{}},"fileCount":{"type":"integer"},"totalBytes":{"type":"integer"},"truncated":{"type":"boolean"},"verifiedAt":{},"stale":{"type":"boolean"}},"description":"`{ chain, chainId, address, verified, matchType, contractName, fullyQualifiedName, language, compiler, settings, sources: [{ path, content, truncated }], fileCount, totalBytes, truncated, verifiedAt }`. `stale: true` (with `cachedAt`) if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Get the verified Solidity/Vyper source code for a deployed contract by address, sourced from Sourcify. Returns every source file (path + content), the contract name, language, compiler version and compiler settings (optimizer, evmVersion) — the full human-readable source an agent needs to read, audit or feed to an LLM. Supports Ethereum, Base, Arbitrum, Optimism, Polygon. Unverified contracts return `verified:false`. Live reads with cache fallback.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Get the verified Solidity/Vyper source code for a deployed contract by address, sourced from Sourcify. Returns every source file (path + content), the contract name, language, compiler version and compiler settings (optimizer, evmVersion) — the full human-readable source an agent needs to read, audit or feed to an LLM. Supports Ethereum, Base, Arbitrum, Optimism, Polygon. Unverified contracts return `verified:false`. Live reads with cache fallback.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Get the verified Solidity/Vyper source code for a deployed contract by address, sourced from Sourcify. Returns every source file (path + content), the contract name, language, compiler version and compiler settings (optimizer, evmVersion) — the full human-readable source an agent needs to read, audit or feed to an LLM. Supports Ethereum, Base, Arbitrum, Optimism, Polygon. Unverified contracts return `verified:false`. Live reads with cache fallback.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/read-contract":{"post":{"summary":"Read contract (call a view function)","description":"Call a read-only (view/pure) function on any deployed contract via eth_call and get the decoded result. Give the contract address and a human-readable signature (e.g. 'balanceOf(address) view returns (uint256)') plus args; include return types to decode outputs, else raw hex is returned. Reads allowances, oracle prices and vault/DAO state. Read-only, no signing. Ethereum, Base, Arbitrum, Optimism, Polygon. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["read contract","call contract","contract read","eth_call","view function","read onchain state"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Deployed contract address."},"function":{"type":"string","description":"Human-readable function signature, e.g. \"balanceOf(address) view returns (uint256)\". Include the return types to decode the result."},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"],"description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."},"args":{"type":"array","description":"Function arguments in order (numbers may be passed as strings)."},"block":{"type":["integer","string"],"description":"Block number or tag (latest, earliest, pending, safe, finalized). Default latest."}},"required":["address","function"],"additionalProperties":false},"example":{"address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","function":"decimals() view returns (uint8)","chain":"base"}}}},"responses":{"200":{"description":"`{ chain, chainId, address, function, selector, block, success, reverted, outputs, outputsNamed, raw, error?, note? }`. `stale: true` (with `cachedAt`) if served from cache.","content":{"application/json":{"schema":{"type":"object","description":"`{ chain, chainId, address, function, selector, block, success, reverted, outputs, outputsNamed, raw, error?, note? }`. `stale: true` (with `cachedAt`) if served from cache."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Call a read-only (view/pure) function on any deployed contract via eth_call and get the decoded result. Give the contract address and a human-readable signature (e.g. 'balanceOf(address) view returns (uint256)') plus args; include return types to decode outputs, else raw hex is returned. Reads allowances, oracle prices and vault/DAO state. Read-only, no signing. Ethereum, Base, Arbitrum, Optimism, Polygon.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Call a read-only (view/pure) function on any deployed contract via eth_call and get the decoded result. Give the contract address and a human-readable signature (e.g. 'balanceOf(address) view returns (uint256)') plus args; include return types to decode outputs, else raw hex is returned. Reads allowances, oracle prices and vault/DAO state. Read-only, no signing. Ethereum, Base, Arbitrum, Optimism, Polygon.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Call a read-only (view/pure) function on any deployed contract via eth_call and get the decoded result. Give the contract address and a human-readable signature (e.g. 'balanceOf(address) view returns (uint256)') plus args; include return types to decode outputs, else raw hex is returned. Reads allowances, oracle prices and vault/DAO state. Read-only, no signing. Ethereum, Base, Arbitrum, Optimism, Polygon.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/sanctions":{"post":{"summary":"OFAC sanctions screening for a crypto address","description":"Screen a crypto wallet address against the OFAC SDN sanctions list (US Treasury Specially Designated Nationals) before transacting. Multi-chain across ~20 assets (BTC, ETH, USDT, TRX, XMR and more); EVM 0x addresses match case-insensitively. Returns whether the address is sanctioned plus the listed entity, asset and list publish date. Clean address returns `sanctioned:false`. Public-domain OFAC data. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["sanctioned address","ofac screening","wallet sanctions check","aml address screening","sanctions screening"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","minLength":8,"maxLength":128,"description":"Crypto wallet address to screen (EVM 0x…, or a BTC/TRX/XMR/… address)."}},"required":["address"],"additionalProperties":false}}}},"responses":{"200":{"description":"`{ address, sanctioned, asset, entity, uid, source:\"OFAC SDN\", asOf, listSize }`. `sanctioned:false` for a clean address. `stale:true` (with `cachedAt`) if served from a cached list after a refresh failure.","content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string"},"sanctioned":{"type":"boolean"},"asset":{},"entity":{},"uid":{},"source":{"type":"string"},"asOf":{"type":"string"},"listSize":{"type":"integer"},"stale":{"type":"boolean"}},"description":"`{ address, sanctioned, asset, entity, uid, source:\"OFAC SDN\", asOf, listSize }`. `sanctioned:false` for a clean address. `stale:true` (with `cachedAt`) if served from a cached list after a refresh failure."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Screen a crypto wallet address against the OFAC SDN sanctions list (US Treasury Specially Designated Nationals) before transacting. Multi-chain across ~20 assets (BTC, ETH, USDT, TRX, XMR and more); EVM 0x addresses match case-insensitively. Returns whether the address is sanctioned plus the listed entity, asset and list publish date. Clean address returns `sanctioned:false`. Public-domain OFAC data.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Screen a crypto wallet address against the OFAC SDN sanctions list (US Treasury Specially Designated Nationals) before transacting. Multi-chain across ~20 assets (BTC, ETH, USDT, TRX, XMR and more); EVM 0x addresses match case-insensitively. Returns whether the address is sanctioned plus the listed entity, asset and list publish date. Clean address returns `sanctioned:false`. Public-domain OFAC data.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Screen a crypto wallet address against the OFAC SDN sanctions list (US Treasury Specially Designated Nationals) before transacting. Multi-chain across ~20 assets (BTC, ETH, USDT, TRX, XMR and more); EVM 0x addresses match case-insensitively. Returns whether the address is sanctioned plus the listed entity, asset and list publish date. Clean address returns `sanctioned:false`. Public-domain OFAC data.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/bytecode":{"post":{"summary":"Contract bytecode and code hash","description":"Fetch deployed EVM contract runtime bytecode and its Keccak-256 code hash to fingerprint or compare contracts, or feed a disassembler. Supports Ethereum, Base, Arbitrum, Optimism and Polygon, with optional historical block reads. Returns full hex code, byte size and isContract; an empty-code address returns 0x and a null hash. Key-free RPC with endpoint fallback; code capped at 256 KiB. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["contract bytecode","runtime bytecode","contract code hash","eth_getCode","deployed code"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Address whose deployed code to read."},"chain":{"type":"string","enum":["ethereum","base","arbitrum","optimism","polygon"],"description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."},"block":{"type":["integer","string"],"description":"Non-negative safe integer, decimal/hex block number, or latest/earliest/pending/safe/finalized. Default latest."}},"required":["address"],"additionalProperties":false},"example":{"address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chain":"base","block":"latest"}}}},"responses":{"200":{"description":"`{ chain, chainId, address, isContract, bytecode, size, codeHash, block, stale, cachedAt? }`. Runtime code, not creation code. Empty code is not proof of an EOA (e.g. precompiles). Stale cache is scoped to chain, address and requested block.","content":{"application/json":{"schema":{"type":"object","properties":{"chain":{"type":"string"},"chainId":{"type":"integer"},"address":{"type":"string"},"isContract":{"type":"boolean"},"bytecode":{"type":"string"},"size":{"type":"integer"},"codeHash":{},"block":{"type":"string"},"stale":{"type":"boolean"}},"description":"`{ chain, chainId, address, isContract, bytecode, size, codeHash, block, stale, cachedAt? }`. Runtime code, not creation code. Empty code is not proof of an EOA (e.g. precompiles). Stale cache is scoped to chain, address and requested block."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Fetch deployed EVM contract runtime bytecode and its Keccak-256 code hash to fingerprint or compare contracts, or feed a disassembler. Supports Ethereum, Base, Arbitrum, Optimism and Polygon, with optional historical block reads. Returns full hex code, byte size and isContract; an empty-code address returns 0x and a null hash. Key-free RPC with endpoint fallback; code capped at 256 KiB.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Fetch deployed EVM contract runtime bytecode and its Keccak-256 code hash to fingerprint or compare contracts, or feed a disassembler. Supports Ethereum, Base, Arbitrum, Optimism and Polygon, with optional historical block reads. Returns full hex code, byte size and isContract; an empty-code address returns 0x and a null hash. Key-free RPC with endpoint fallback; code capped at 256 KiB.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Fetch deployed EVM contract runtime bytecode and its Keccak-256 code hash to fingerprint or compare contracts, or feed a disassembler. Supports Ethereum, Base, Arbitrum, Optimism and Polygon, with optional historical block reads. Returns full hex code, byte size and isContract; an empty-code address returns 0x and a null hash. Key-free RPC with endpoint fallback; code capped at 256 KiB.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/btc-fees":{"post":{"summary":"Bitcoin recommended fees","description":"Live recommended Bitcoin transaction fee rates (in sat/vB) for next-block, ~30-minute, ~1-hour, economy and minimum confirmation targets, straight from the mempool. Also estimates the total fee (in sats and BTC) for a transaction of the given virtual size, so an agent can pick a fee tier and know the cost before broadcasting. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["bitcoin fees","btc transaction fee","recommended bitcoin fee","sat per vbyte","bitcoin fee estimator","btc fee rate"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"txvBytes":{"type":"integer","minimum":1,"maximum":1000000,"default":140,"description":"Virtual size of the transaction in vbytes, used to estimate the total fee at each tier. Defaults to 140 (a typical 1-in/2-out native-segwit spend)."}},"additionalProperties":false}}}},"responses":{"200":{"description":"`{ fastestFee, halfHourFee, hourFee, economyFee, minimumFee, unit:\"sat/vB\", txvBytes, estimate: { fastest, halfHour, hour, economy, minimum } (each { sats, btc }), source, stale, cachedAt? }`.","content":{"application/json":{"schema":{"type":"object","description":"`{ fastestFee, halfHourFee, hourFee, economyFee, minimumFee, unit:\"sat/vB\", txvBytes, estimate: { fastest, halfHour, hour, economy, minimum } (each { sats, btc }), source, stale, cachedAt? }`."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Live recommended Bitcoin transaction fee rates (in sat/vB) for next-block, ~30-minute, ~1-hour, economy and minimum confirmation targets, straight from the mempool. Also estimates the total fee (in sats and BTC) for a transaction of the given virtual size, so an agent can pick a fee tier and know the cost before broadcasting.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Live recommended Bitcoin transaction fee rates (in sat/vB) for next-block, ~30-minute, ~1-hour, economy and minimum confirmation targets, straight from the mempool. Also estimates the total fee (in sats and BTC) for a transaction of the given virtual size, so an agent can pick a fee tier and know the cost before broadcasting.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Live recommended Bitcoin transaction fee rates (in sat/vB) for next-block, ~30-minute, ~1-hour, economy and minimum confirmation targets, straight from the mempool. Also estimates the total fee (in sats and BTC) for a transaction of the given virtual size, so an agent can pick a fee tier and know the cost before broadcasting.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/btc-mempool":{"post":{"summary":"Bitcoin mempool congestion","description":"Live snapshot of the Bitcoin mempool: number of unconfirmed transactions, total pending virtual size (bytes and MB), the current backlog in blocks, total fees pending (sats and BTC), the fee-rate histogram, and the current chain tip height. Lets an agent gauge network congestion and time a transaction. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["bitcoin mempool","mempool congestion","unconfirmed transactions","bitcoin network congestion","mempool size","btc transaction backlog"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"`{ count, vsizeBytes, vsizeMB, backlogBlocks, totalFeeSat, totalFeeBtc, tipHeight, feeHistogram: [{ feeRate, vsize }], source, stale, cachedAt? }`.","content":{"application/json":{"schema":{"type":"object","description":"`{ count, vsizeBytes, vsizeMB, backlogBlocks, totalFeeSat, totalFeeBtc, tipHeight, feeHistogram: [{ feeRate, vsize }], source, stale, cachedAt? }`."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Live snapshot of the Bitcoin mempool: number of unconfirmed transactions, total pending virtual size (bytes and MB), the current backlog in blocks, total fees pending (sats and BTC), the fee-rate histogram, and the current chain tip height. Lets an agent gauge network congestion and time a transaction.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Live snapshot of the Bitcoin mempool: number of unconfirmed transactions, total pending virtual size (bytes and MB), the current backlog in blocks, total fees pending (sats and BTC), the fee-rate histogram, and the current chain tip height. Lets an agent gauge network congestion and time a transaction.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Live snapshot of the Bitcoin mempool: number of unconfirmed transactions, total pending virtual size (bytes and MB), the current backlog in blocks, total fees pending (sats and BTC), the fee-rate histogram, and the current chain tip height. Lets an agent gauge network congestion and time a transaction.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/btc-address":{"post":{"summary":"Bitcoin address balance & history","description":"Balance and activity for a Bitcoin address (base58 1…/3… or bech32 bc1…): confirmed balance (sats and BTC), total received and sent, confirmed transaction count, and unconfirmed/pending value and tx count from the mempool. On-chain ground truth an agent cannot compute locally. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["bitcoin address balance","btc wallet balance","check bitcoin address","bitcoin balance lookup","btc address history","bitcoin received and sent"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","minLength":1,"maxLength":100,"description":"Bitcoin address: base58 (starts with 1 or 3) or bech32/bech32m (starts with bc1)."}},"required":["address"],"additionalProperties":false},"example":{"address":"1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"}}}},"responses":{"200":{"description":"`{ address, found, balanceSat, balanceBtc, totalReceivedSat, totalSentSat, txCount, pendingSat, pendingTxCount, source, stale, cachedAt? }`.","content":{"application/json":{"schema":{"type":"object","description":"`{ address, found, balanceSat, balanceBtc, totalReceivedSat, totalSentSat, txCount, pendingSat, pendingTxCount, source, stale, cachedAt? }`."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Balance and activity for a Bitcoin address (base58 1…/3… or bech32 bc1…): confirmed balance (sats and BTC), total received and sent, confirmed transaction count, and unconfirmed/pending value and tx count from the mempool. On-chain ground truth an agent cannot compute locally.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Balance and activity for a Bitcoin address (base58 1…/3… or bech32 bc1…): confirmed balance (sats and BTC), total received and sent, confirmed transaction count, and unconfirmed/pending value and tx count from the mempool. On-chain ground truth an agent cannot compute locally.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Balance and activity for a Bitcoin address (base58 1…/3… or bech32 bc1…): confirmed balance (sats and BTC), total received and sent, confirmed transaction count, and unconfirmed/pending value and tx count from the mempool. On-chain ground truth an agent cannot compute locally.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}},"/v1/btc-tx":{"post":{"summary":"Bitcoin transaction status","description":"Look up a Bitcoin transaction by txid: confirmation status, block height and time, fee (sats), effective fee rate (sat/vB), size, weight and virtual size, input and output counts, and total output value (sats and BTC). On-chain ground truth for verifying a payment. Paid endpoint (x402 + MPP). Price: $0.006000 USDC per successful payment.","tags":["bitcoin transaction lookup","btc transaction status","verify bitcoin payment","bitcoin txid lookup","btc confirmation status","bitcoin transaction details"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"txid":{"type":"string","minLength":64,"maxLength":64,"description":"Transaction id: 64-character hex string."}},"required":["txid"],"additionalProperties":false},"example":{"txid":"4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"}}}},"responses":{"200":{"description":"`{ txid, found, confirmed, blockHeight, blockTime, feeSat, feeRate, sizeBytes, weight, vsize, inputCount, outputCount, totalOutputSat, totalOutputBtc, source, stale, cachedAt? }`.","content":{"application/json":{"schema":{"type":"object","description":"`{ txid, found, confirmed, blockHeight, blockTime, feeSat, feeRate, sizeBytes, weight, vsize, inputCount, outputCount, totalOutputSat, totalOutputBtc, source, stale, cachedAt? }`."}}}},"400":{"description":"Invalid request; no payment is attempted"},"402":{"description":"Payment required; x402/MPP metadata returned in headers"},"502":{"description":"Upstream provider error after payment verification"}},"x-payment-info":{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Look up a Bitcoin transaction by txid: confirmation status, block height and time, fee (sats), effective fee rate (sat/vB), size, weight and virtual size, input and output counts, and total output value (sats and BTC). On-chain ground truth for verifying a payment.","method":"tempo","preferredOffer":"mpp-tempo","price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"evm","intent":"charge","network":"8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}},{"mpp":{"method":"tempo","intent":"charge","network":"4217","currency":"0x20c000000000000000000000b9537d11c60e8b50","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}}],"network":"4217","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A","offers":[{"amount":"6000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"Look up a Bitcoin transaction by txid: confirmation status, block height and time, fee (sats), effective fee rate (sat/vB), size, weight and virtual size, input and output counts, and total output value (sats and BTC). On-chain ground truth for verifying a payment.","intent":"charge","method":"evm","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"},{"amount":"6000","currency":"0x20c000000000000000000000b9537d11c60e8b50","description":"Look up a Bitcoin transaction by txid: confirmation status, block height and time, fee (sats), effective fee rate (sat/vB), size, weight and virtual size, input and output counts, and total output value (sats and BTC). On-chain ground truth for verifying a payment.","intent":"charge","method":"tempo","recipient":"0xb3f4de103F34b99f0Da19B4F16D6B53a14C2194A"}]}}}},"x-service-info":{"categories":["crypto"],"docs":{"homepage":"https://chain.openverbs.com","apiReference":"https://chain.openverbs.com/openapi.json"}}}